Как проверить текущий цвет фона wpf c # - PullRequest
0 голосов
/ 27 февраля 2019

Как я могу проверить текущий цвет кнопки здесь код пока

private void firstClick(object changer, RoutedEventArgs e)
        {
            Button x = (changer as Button);

            if (x backgroundcolor is blue)
            {

                x.Background = new SolidColorBrush(Colors.LightBlue);
                click++;

Ответы [ 3 ]

0 голосов
/ 27 февраля 2019

Поскольку вы, кажется, испытываете затруднения с другим ответом (кстати, его правильнее), давайте упростим его использование:

        var yourColor = System.Drawing.Color.Blue;
        if ((x.Background as SolidColorBrush).Color.A == yourColor.A &&
            (x.Background as SolidColorBrush).Color.R == yourColor.R &&
            (x.Background as SolidColorBrush).Color.G == yourColor.G &&
            (x.Background as SolidColorBrush).Color.B == yourColor.B)
        {
            //do something nice here
        }
0 голосов
/ 28 февраля 2019

Структура WPF Color имеет оператор равенства , поэтому вы можете просто написать это:

if (((SolidColorBrush)x.Background).Color == Colors.Blue)
{ 
    ...
}
0 голосов
/ 27 февраля 2019

Попробуйте:

        public bool Equals(SolidColorBrush brush1, SolidColorBrush brush2) {
        return brush1.Opacity == brush2.Opacity &&
            brush1.Color.A == brush2.Color.A &&
            brush1.Color.R == brush2.Color.R &&
            brush1.Color.B == brush2.Color.B &&
            brush1.Color.G == brush2.Color.G;
    }

Чтобы получить цвет:

Color color1 = (Color)brush1.GetValue(SolidColorBrush.ColorProperty);

Использование:

Button x = (changer as Button);
Brush blue = Brushes.Blue;
if (Equals(x.BackgroundColor,blue)) {
    x.Background = new SolidColorBrush(Colors.LightBlue);
    click++;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...