我在ToolBar中的自定义控件

时间:2011-10-21 10:57:34

标签: wpf coding-style toolbar

我有一个特定的控制。当它放在ToolBar中时,我想为它制作样式。我已经找到了如何在Button,CheckBox和其他标准控件的情况下做到这一点,但我应该如何让它为我的控件?

2 个答案:

答案 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