我在工具栏中的自定义控件

发布于 2024-12-11 13:53:45 字数 92 浏览 0 评论 0原文

我有一个具体的控制。我想在它放置在工具栏中时为其设置样式。我已经找到了如何在 Button、CheckBox 和其他标准控件中做到这一点,但是我应该如何为我的控件制作它?

I have a specific control. I want to make style for it when it is placed in ToolBar. I have found how to do it in case of Button, CheckBox and other standard controls, but how I should make it for my control?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

孤凫 2024-12-18 13:53:45
<Style x:Key="MyStyleForCustomControl" TargetType="{x:Type NameSpace:CustomControl}">

// Your setter's for your controls go here.

</Style>

命名空间 - 您的控件所在的位置
CustomControl - 您的控件的名称。

这是你想要的吗?

编辑:

如果您希望在控件中使用工具栏样式,只需将样式放置在用户控件资源中,它将应用于控件中放置的工具栏。此样式的范围将仅限于您的控制范围,并将隐藏在您的控制范围之外。

<UserControl.Resources>
<Style TargetType="{x:Type ToolBar}">
   ....
</Style>
</UserControl.Resources>
<Style x:Key="MyStyleForCustomControl" TargetType="{x:Type NameSpace:CustomControl}">

// Your setter's for your controls go here.

</Style>

NameSpace - where your Control is present
CustomControl - Name of your control.

Is this what you want?

EDIT:

If you want Style for Toolbar in your control, simply place the style in your UserControl Resources, it will be applied to the Toolbar placed within your control. The scope for this style will be limited to your control and will be hidden outside your control.

<UserControl.Resources>
<Style TargetType="{x:Type ToolBar}">
   ....
</Style>
</UserControl.Resources>
哆啦不做梦 2024-12-18 13:53:45

好吧,现在你澄清了你的问题,我想我可以给你一个解决方案。看起来您只需为特定用户控件设置 ToolBar 控件的 ItemContainerStyle 即可。首先声明您的特定控件所在的“my”命名空间,然后添加如下内容:

<ToolBar>
    <ToolBar.ItemContainerStyle>
        <Style TargetType="{x:Type my:MyUserControl}">
            <Setter Property="Background" Value="Azure"/>
        </Style>
    </ToolBar.ItemContainerStyle>
    <my:MyUserControl/>
</ToolBar>

如果您想向工具栏添加其他控件类型(如上面提到的按钮),那么您将需要定义一个自定义 StyleSelector,而不是您将设置为 ItemContainerStyleSelector 属性。这是 StyleSelector 实现的一个很好的示例:样式选择器< /a>

Ok now you clarified your question I think I can give you a solution. It looks like you simply need to set the ItemContainerStyle of the ToolBar control for your specific user control. First declare the "my" namespace where your specific control is located, then just add something like this:

<ToolBar>
    <ToolBar.ItemContainerStyle>
        <Style TargetType="{x:Type my:MyUserControl}">
            <Setter Property="Background" Value="Azure"/>
        </Style>
    </ToolBar.ItemContainerStyle>
    <my:MyUserControl/>
</ToolBar>

If you wanna add other control types to the ToolBar like the Button you mentioned above, then you will need to define a custom StyleSelector instead that you will set to the ItemContainerStyleSelector property. Here is a pretty good sample of StyleSelector implementation: Style Selectors

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文