我不确定应用样式是否会是一个更好的标题,所以我让它应用了一些东西。下面是xaml的某个片段,我用它来删除WPF应用程序中ComboBox
的默认箭头。
<ComboBox ItemsSource="{Binding Path=ConnTypes,Mode=OneTime,
UpdateSourceTrigger=PropertyChanged}" SelectedIndex="0">
<ComboBox.Resources>
<sys:Double x:Key="{x:Static SystemParameters.VerticalScrollBarWidthKey}">0</sys:Double>
</ComboBox.Resources>
</ComboBox>
现在我想对所有的ComboBox
做同样的事情,而不为所有的ComboBox
复制相同的<ComboBox.Resources>
。我只想定义一次这个(<ComboBox.Resources>
),它应该应用于窗口中的所有ComboBox
。
你能告诉我怎么做吗?
提前谢谢。
通过不带x:key
的Style
将其添加到Window.Resources
中,从而隐式应用于Window
中的所有ComboBox
控件
<Window.Resources>
<Style TargetType="{x:Type ComboBox}">
<Style.Resources>
<sys:Double x:Key="{x:Static SystemParameters.VerticalScrollBarWidthKey}">0</sys:Double>
</Style.Resources>
</Style>
</Window.Resources>
旁注:
请记住,您当前的方法"有效"隐藏ComboBox
的箭头,但它的作用远不止于此。所以,如果你还没有意识到这一点。
将SystemParameters.VerticalScrollBarWidthKey
设置为0
将"隐藏"ComboBox
的Popup
中的垂直滚动条,该滚动条的宽度使用相同的系统参数。因此,如果不需要这种行为,最好编辑ComboBox
模板,并将"箭头"Path
设置为具有Transparent
填充,或者将其全部删除。