【发布时间】:2014-04-17 10:28:08
【问题描述】:
我正在开发一个 WPF 项目,它有自己的用户控件库。在那里,我必须为所有 DataGrids ScrollBars 创建一个通用样式。如何在该项目中添加这样的样式作为资源,并在其中全局应用?
在 WPF 应用程序中,我可以使用 App.xaml 来完成。但我不知道如何在控制库中做到这一点。
请帮忙(:
【问题讨论】:
我正在开发一个 WPF 项目,它有自己的用户控件库。在那里,我必须为所有 DataGrids ScrollBars 创建一个通用样式。如何在该项目中添加这样的样式作为资源,并在其中全局应用?
在 WPF 应用程序中,我可以使用 App.xaml 来完成。但我不知道如何在控制库中做到这一点。
请帮忙(:
【问题讨论】:
UserControls 不包含在一个 App.xaml 中,因此无法像 WPF 应用程序那样实现这一目标。但是,如果您希望将此 Style 应用于每个 DataGrid ScrollBar,则需要定义适用于每个 DataGrid 的 Style,即
<Style x:Key="{x:Type local:DataGrid}" TargetType="local:DataGrid">
然后在样式目标里面Scrollbar如下:
<Style TargetType="ScrollBar">
在您的 App.xaml 中定义时,它将针对每个 DataGrid 的 ScrollBar。
您需要在 App.xaml 中定义此样式,当您使用 UC 时,它将无条件地应用于它们。
注意
如果您想将 Stye 添加到现有的,您需要添加 BasedOn:{StaticResource nameOfYourStyle}。
HTH
示例基于 MSDN ScrollBar 和 DataGrid 示例样式。
【讨论】: