gpt4 book ai didi

wpf - 覆盖本地资源字典中的 SystemColors

转载 作者:行者123 更新时间:2023-12-05 02:20:42 25 4
gpt4 key购买 nike

我试图在 WPF ListBox 中隐藏指示选择的视觉提示。 This answer建议这应该通过覆盖 ListBoxSystemColors 来工作。

我创建了一个新的 WPF 项目并像这样编辑了 MainWindow.xaml:

<Window x:Class="WpfListboxWithoutSelection.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfListboxWithoutSelection"
xmlns:s="clr-namespace:System;assembly=mscorlib"
mc:Ignorable="d"
Title="MainWindow" Height="150" Width="325">
<Grid>
<ListBox>
<ListBox.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent" />
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black" />
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent" />
</ListBox.Resources>
<s:String>Item 1</s:String>
<s:String>Item 2</s:String>
<s:String>Item 3</s:String>
</ListBox>
</Grid>
</Window>

不幸的是,这不起作用,窗口显示如下:

知道我做错了什么吗?如何去除所选项目和悬停项目上出现的蓝色?

最佳答案

肯定不行。由于 ListBox.Resources 将为 ListBox 而不是 ListBoxItem 设置资源。所以这是一个解决方案:

<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="FocusVisualStyle" Value="{x:Null}" />
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"/>
<SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="Transparent"/>
</Style.Resources>
</Style>

在 windows.resource 中附加此样式,例如:

<Window.Resources>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="FocusVisualStyle" Value="{x:Null}" />
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"/>
<SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="Transparent"/>
</Style.Resources>
</Style>
</Window.Resources>

而且您可以大胆地将更多 SolidColorBrush 放入 Style.Resources 中,就像您在代码中所做的那样。

关于wpf - 覆盖本地资源字典中的 SystemColors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38042016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com