WPF 更改(覆盖)所有控件中的突出显示和边框颜色
WPF change (override) highlight and border color in all controls
在问这个问题之前,我研究并测试了很多代码。
IDE: VS2022
。 OS:Windows 11
。 App: WPF
.NET 6
(核心) C#
T-SQL
我正在尝试覆盖资源字典中的 SystemColors。
我可以覆盖这个值成功:
<SolidColorBrush x:Key="{x:Static SystemColors.ControlTextBrushKey}" Color="Red" />
问题是,我无法使用以下方法覆盖高亮颜色:
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Red" />
结果:
我做错了什么?
感谢您的帮助。
更新:
使用样式无效。
<Style TargetType="PasswordBox">
<Setter Property="SelectionBrush" Value="Red" />
<Setter Property="SelectionTextBrush" Value="Red" />
</Style>
TextBox
和 PasswordBox
通过 SelectionBrush
属性 控制高光画笔。并非所有控件都使用 SystemColors.HighlightBrushKey
。例如,SystemColors.HighlightBrushKey
被 DataGrid
使用,但不被 ListBox
使用。
使用SelectionOpacity
控制高光画笔的不透明度。
要全局更改 SelectionBrush
,您必须将 Style
添加到 App.xaml 资源:
App.xaml
<ResourceDictionary>
<Style TargetType="PasswordBox">
<Setter Property="SelectionBrush" Value="Red" />
<Setter Property="SelectionOpacity" Value="0.8" />
</Style>
<Style TargetType="TextBox">
<Setter Property="SelectionBrush" Value="Red" />
<Setter Property="SelectionOpacity" Value="0.8" />
</Style>
</ResourceDictionary>
在问这个问题之前,我研究并测试了很多代码。
IDE: VS2022
。 OS:Windows 11
。 App: WPF
.NET 6
(核心) C#
T-SQL
我正在尝试覆盖资源字典中的 SystemColors。
我可以覆盖这个值成功:
<SolidColorBrush x:Key="{x:Static SystemColors.ControlTextBrushKey}" Color="Red" />
问题是,我无法使用以下方法覆盖高亮颜色:
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Red" />
结果:
我做错了什么?
感谢您的帮助。
更新:
使用样式无效。
<Style TargetType="PasswordBox">
<Setter Property="SelectionBrush" Value="Red" />
<Setter Property="SelectionTextBrush" Value="Red" />
</Style>
TextBox
和 PasswordBox
通过 SelectionBrush
属性 控制高光画笔。并非所有控件都使用 SystemColors.HighlightBrushKey
。例如,SystemColors.HighlightBrushKey
被 DataGrid
使用,但不被 ListBox
使用。
使用SelectionOpacity
控制高光画笔的不透明度。
要全局更改 SelectionBrush
,您必须将 Style
添加到 App.xaml 资源:
App.xaml
<ResourceDictionary>
<Style TargetType="PasswordBox">
<Setter Property="SelectionBrush" Value="Red" />
<Setter Property="SelectionOpacity" Value="0.8" />
</Style>
<Style TargetType="TextBox">
<Setter Property="SelectionBrush" Value="Red" />
<Setter Property="SelectionOpacity" Value="0.8" />
</Style>
</ResourceDictionary>