将某些东西应用于多个组合框



我不确定应用样式是否会是一个更好的标题,所以我让它应用了一些东西。下面是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:keyStyle将其添加到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将"隐藏"ComboBoxPopup中的垂直滚动条,该滚动条的宽度使用相同的系统参数。因此,如果不需要这种行为,最好编辑ComboBox模板,并将"箭头"Path设置为具有Transparent填充,或者将其全部删除。

相关内容

  • 没有找到相关文章

最新更新