隐藏 WPF ListBox 中的选择,将其保留在包含的控件中
我使用 ListBox 来显示可编辑对象的列表,其模板除其他外还包含 ComboBox。
我使用这种常见技术来隐藏列表框选择,该技术不用于任何用途:
<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>
问题是这与组合框下拉列表选择混淆。
我想在我的模板中再次覆盖这些资源,指定原始值(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-->
I'm using a ListBox to display a list of editable objects whose template contains, among other things, a ComboBox.
I used this common technique to hide the ListBox selection, which is not used for anything:
<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>
The problem is this messes with the ComboBox dropdown list selection.
I'd like to override these resources again in my template, specifying the original values (SystemColors.HighlightBrush
, etc) instead of hardcoding them. How can I do that?
<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-->
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您不使用该选择任何东西,您应该只使用
ItemsControl
代替。If you do not use the selection for anything you should just use an
ItemsControl
instead.您可以执行以下操作:
或
将画笔恢复为其默认颜色。
You could do:
or
To restore the brushes to their default colors.