如何在通用Windows平台应用程序中通过单击事件更改按钮的背景颜色?

4

我正在开发一个针对Windows 10的UWP应用程序,我想在点击事件中更改按钮的背景颜色。这是我的代码:

private void button1_1_Click(object sender, RoutedEventArgs e)
{
    if (_Sign)
    {
        button_1_1.Content = "Cross";
        _Sign = false;
    }
    else
    {
        // button_1_1.Background = new SolidColorBrush(new Windows.UI.Color )    

        // indows.UI.Colors clr = new Windows.UI.Colors(new SolidColorBrush red);

        // SolidColorBrush color = new SolidColorBrush();
        // color = new SolidColorBrush.
        // button_1_1.Background = clr;

        button_1_1.Content = "Tick";
        _Sign = true;
    }
}

1
你可能会在XAML中比在代码后台更容易实现。这个线程可能会有所帮助。 - Arian Motamedi
是的,这很好,但我需要从C#代码中更改颜色,因为我正在处理不同的情况。 - Ammar Shaukat
3个回答

6

使用预定义的颜色对象来自颜色属性:

button_1_1.Background = new SolidColorBrush(Windows.UI.Colors.White);

似乎在UWP中SolidColorBrush不再存在了? - user3437460

1
你可以做到这一点。
button1.SetValue(BackgroundProperty,new SolidColorBrush(Windows.UI.Colors.Black));

你可以尝试使用这个!我现在不在电脑旁边,无法检查,但类似这样的东西应该可以工作。

或者你可以尝试

button1.Background = new SolidColorBrush(Windows.Ui.Colors.Black);

1
"BackgroundProperty" 和 "UI"。我只是提醒大家可以复制/粘贴,避免错误。 - RareNCool

1

你也可以提供不同的颜色

 SolidColorBrush mySolidColorBrush = new SolidColorBrush();
   mySolidColorBrush.Color = Color.FromArgb(0, 255, 244, 244);
 button1.Background = mySolidColorBrush;

你只需要像这样将颜色代码转换为Argb

return new SolidColorBrush(
                Color.FromArgb(
                    255,
                    Convert.ToByte(hexaColor.Substring(1, 2), 16),
                    Convert.ToByte(hexaColor.Substring(3, 2), 16),
                    Convert.ToByte(hexaColor.Substring(5, 2), 16)
                )
            );

这很容易且合适,因为你可以选择任何颜色,而不是像黑色、橙色等默认颜色。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接