我不确定申请风格是否会是一个更好的标题,所以我做了它应用的东西。
下面是某些 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.Resources>
复制同一段ComboBox
。我只想定义一次(<ComboBox.Resources>
),这应该应用于窗口中的所有ComboBox
。
你能告诉我一个方法吗?
提前致谢。
答案 0 :(得分:2)
通过Window.Resources
添加Style
而不x:key
添加到ComboBox
,从而隐含地应用于Window
中的所有<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
的{{1}}中的垂直滚动条,并使用与其宽度相同的系统参数。因此,如果不希望出现这种情况,最好还是修改ComboBox
模板,然后将“箭头”Path
设置为Transparent
填充,或者将其全部删除。