我正在使用ListBox来显示一个可编辑对象的列表,其模板包含一个ComboBox等。
我使用这种常用技术来隐藏ListBox选项,它不用于任何东西:
<ListBox.Resources>
<Style TargetType="ListBoxItem">
<Style.Resources>
<Brush x:Key="{x:Static SystemColors.HighlightBrushKey}">Transparent</Brush>
<Brush x:Key="{x:Static SystemColors.ControlBrushKey}">Transparent</Brush>
问题在于ComboBox下拉列表选择的混乱。
我想在我的模板中再次覆盖这些资源,指定原始值(SystemColors.HighlightBrush
等)而不是硬编码它们。我怎么能这样做?
<ListBox.ItemTemplate>
<DataTemplate DataType="{x:Type SearchService:Criterion}">
<DataTemplate.Resources>
<!--I know how to specify a hardcoded brush here,
but not how to reference one from SystemColors-->
答案 0 :(得分:10)
我用这种常用技术来隐藏 ListBox选择,不是 用于任何事情
如果你不使用任何的选择,你应该只使用ItemsControl
。
答案 1 :(得分:3)
你可以这样做:
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}"
Color="{x:Static SystemColors.HighlightColor}" />
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}"
Color="{x:Static SystemColors.ControlColor}" />
或
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}"
Color="{DynamicResource {x:Static SystemColors.HighlightColorKey}}" />
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}"
Color="{DynamicResource {x:Static SystemColors.ControlColorKey}}" />
将画笔恢复为默认颜色。