我有一个特定的控制。当它放在ToolBar中时,我想为它制作样式。我已经找到了如何在Button,CheckBox和其他标准控件的情况下做到这一点,但我应该如何让它为我的控件?
答案 0 :(得分:1)
<Style x:Key="MyStyleForCustomControl" TargetType="{x:Type NameSpace:CustomControl}">
// Your setter's for your controls go here.
</Style>
NameSpace - 控件所在的位置 CustomControl - 控件的名称。
这是你想要的吗?
修改强>
如果您想在控件中使用样式工具栏,只需将样式放在UserControl资源中,它就会应用到控件中放置的工具栏。此样式的范围仅限于您的控件,并且将隐藏在您无法控制的范围之外。
<UserControl.Resources>
<Style TargetType="{x:Type ToolBar}">
....
</Style>
</UserControl.Resources>
答案 1 :(得分:0)
好的,现在你澄清了我的问题,我想我可以给你一个解决方案。看起来您只需要为特定用户控件设置ToolBar控件的 ItemContainerStyle 。首先声明特定控件所在的“my”命名空间,然后添加如下内容:
<ToolBar>
<ToolBar.ItemContainerStyle>
<Style TargetType="{x:Type my:MyUserControl}">
<Setter Property="Background" Value="Azure"/>
</Style>
</ToolBar.ItemContainerStyle>
<my:MyUserControl/>
</ToolBar>
如果你想将其他控件类型添加到ToolBar,就像上面提到的Button一样,那么你需要定义一个自定义StyleSelector,而不是你将设置为ItemContainerStyleSelector属性。以下是StyleSelector实现的一个很好的示例:Style Selectors