如何为所有控件(listbox,treeview,scrollbarviewer,richtextbox等)显示的滚动条更改样式-ONCE-?
答案 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"/>