0

我不确定应用样式是否会是一个更好的标题,所以我让它应用了东西。下面是我用来从我的WPF应用程序中删除默认箭头的某些xamlComboBox

<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. 我只想定义 this( <ComboBox.Resources>) 一次,它应该应用于ComboBox 窗口中的所有内容。

你能告诉我一种方法吗?

提前致谢。

4

1 回答 1

2

Window.Resources通过 a将其添加到您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.VerticalScrollBarWidthKeyto0将因此“隐藏” ComboBox's中的垂直滚动条,Popup它使用相同的系统参数作为它的宽度。因此,如果不需要这种行为,您最好编辑ComboBox模板并将“箭头”设置Path为具有Transparent填充或将其全部删除。

于 2013-07-08T09:16:41.030 回答