我想在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;
答案 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
。