WPF:使用滚动条重新设置所有控件

时间:2009-12-13 07:47:39

标签: wpf styles scrollbar

如何为所有控件(listbox,treeview,scrollbarviewer,richtextbox等)显示的滚动条更改样式-ONCE-?

2 个答案:

答案 0 :(得分:5)

如果要为没有x:Key属性的控件定义样式,它将应用于该控件的所有实例。

试试这样:

<Window.Resources>
    <Style TargetType="ScrollBar">
        <Setter Property="Background" Value="Red"/>
    </Style>
</Window.Resources>
<Grid>
    <TextBox Margin="24,12,0,0" VerticalScrollBarVisibility="Visible" AcceptsReturn="True" Height="28" VerticalAlignment="Top" HorizontalAlignment="Left" Width="89" />
    <ScrollBar Name="scroll" HorizontalAlignment="Right" />
</Grid>

在这里,您可以看到为ScrollBar控件定义了Style,并且没有定义x:Key属性,因此它将应用于Window中的每个ScrollBar实例。就像TextBox的ScrollBar和ScrollBar一样名为scroll。

希望这有帮助!

答案 1 :(得分:0)

感谢。最后,通过在Themes / Generic.xaml中设置样式来解决问题,并且(由于自定义控件存在于另一个程序集中,并且各自的资源已合并),将以下内容添加到App.xaml ...

<Application.Resources>
  <ResourceDictionary>
    <ResourceDictionary.MergedDictionaries>
      <ResourceDictionary Source="Themes/Generic.xaml"/>
      <ResourceDictionary Source="MyCtls/MyRes.xaml" />
    </ResourceDictionary>
</Application.Resources> 

关键是合并Generic.xaml文件。 此外,如果资源字典在另一个程序集中,则必须将其引用为...

<ResourceDictionary Source="pack://application:,,,/OtherAssembly;component/MyCtls/MyRes.xaml"/>