在主窗口中为切换按钮指定颜色“#FF5D0000”

时间:2017-12-04 09:08:00

标签: c# wpf xaml

我想在MainWindow.xaml.cs中为我的按钮提供mij文本自定义颜色

通常,您通过这种方式将cs文件中的颜色赋予命令:

 var decodedVal = window.decodeURI("%CF%84%CE%B9-%CE%B5%CE%AF%CE%BD%CE%B1%CE%B9-%CE%BF-%CF%80%CF%8C%CE%BD%CE%BF%CF%82;");
 
 console.log(decodedVal);

但我想给出六角数

我已经尝试过这样的事情:

ToggleButton.Foreground = Brushes.Green; 

2 个答案:

答案 0 :(得分:2)

不要在后面的代码中执行此操作(除非您有非常具体的理由),您可以使用xaml

<ToggleButton Foreground = "#FF5D0000"/>

如果您是根据某些条件进行的,请查看this。在你的xaml中尽可能多地处理图形内容总是一种更好的做法

例如你可以做

        <ToggleButton>
            <ToggleButton.Style>
                <Style TargetType="{x:Type ToggleButton}">
                    <Style.Triggers>
                        <Trigger Property="IsChecked" Value="True">
                            <Setter Property="Foreground" Value="Green"/>
                        </Trigger>
                        <Trigger Property="IsChecked" Value="False">
                            <Setter Property="Foreground" Value="Red"/>
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </ToggleButton.Style>
        </ToggleButton>

答案 1 :(得分:1)

通常在WPF中,您倾向于使用XAML中定义的样式来更改控件的外观。但是,如果您必须在代码隐藏中使用十六进制语法,则使用BrushConverter可以正常工作。我考虑使用SolidColorBrush更轻松地构建新的Color.FromArgb,但这也有效。

至于如何正确使用样式和XAML,你应该阅读一些教程或书籍。 WPF与Windows Forms或许多较旧的UI框架完全不同,因此需要重新学习。

实现所需内容的最简单方法(按下按钮时的不同文本颜色)将采用以下样式:

<Style TargetType="ToggleButton">
    <Setter Property="Foreground" Value="#FF5D0000"/>
    <Style.Triggers>
        <Trigger Property="IsPressed" Value="True">
            <Setter Property="Foreground" Value="Green"/>
        </Trigger>
    </Style.Triggers>
</Style>

当放入Resources的{​​{1}}时,它将适用于该窗口中的所有Window