尝试在WPF中更改HEX值时出现问题

时间:2018-05-28 14:07:10

标签: c# wpf

在我的MainWindows.xaml中,我有一个Fill="#95305D"的矩形 我想在点击时使用不同的十六进制颜色更改其颜色,所以我尝试了:

    public void Rect_Click(object sender, System.Windows.Input.MouseButtonEventArgs e)
    {
        if (RMaximize.Fill == (SolidColorBrush)new BrushConverter().ConvertFromString("#95305D"))
            RMaximize.Fill = (SolidColorBrush)new BrushConverter().ConvertFromString("#3E7A61");
        else
            RMaximize.Fill = (SolidColorBrush)new BrushConverter().ConvertFromString("#95305D");
    }

然而它不起作用,我没有错误但也没有变化,我该怎么做?

1 个答案:

答案 0 :(得分:1)

当BrushConverter转换字符串时,它会创建一个新的SolidColorBrush。 SolidColorBrush是一种引用类型。当您将其与.globl _start进行比较时,您会比较两个不同的引用。

虽然可以比较画笔的颜色,但我会按如下方式重构代码:

RMaximize.Fill

我引入了一个新变量来计算点击次数,并更改填充奇数或偶数点击次数