【问题标题】:How to affect child control properties from a style如何从样式影响子控件属性
【发布时间】:2012-04-25 01:04:42
【问题描述】:

我正在创建一种以按钮为目标的样式。将应用样式的按钮在其内部的堆栈面板中具有图像和文本块。我希望根据某些条件使用触发器来影响子控件的属性。

我想使用按钮样式来影响堆栈面板的方向以及图像的定义宽度。

我查看了样式设置器的属性智能中可用的各种子控件类型...我可以看到诸如 Grid、DockPanel 和 TextBlock 之类的东西...但我正在寻找的是在他们缺席的情况下非常引人注目。

我不能影响某些子控件类型是否有原因?有没有办法在不滚动自定义控件的情况下这样做,该控件显式公开我希望影响的子控件属性?

【问题讨论】:

    标签: wpf xaml styles


    【解决方案1】:

    您可以使用隐式样式:

    <Style TargetType="Button" x:Key="myButtonStyle"> <!-- Has a key, will only be applied on elements that have their style set to {StaticResource myButtonStyle} -->
       <Setter Property="Background" Value="Green" />
       ...
       <Style.Resources>
          <Style TargetType="Image"> <!-- No key, so it is implicit and will apply to any child element of type Image -->
             <Setter Property="Height" Value="20" />
             ...
          </Style>
       </Style.Resources>
    </Style>
    

    当然你也可以添加触发器。

    【讨论】:

    • 效果很好!我不知道您可以在样式上设置资源。这正是我想要的。网站强制延迟到期后,我会在几分钟内接受您的答复。谢谢!
    猜你喜欢
    • 2019-05-01
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-14
    • 1970-01-01
    • 2021-10-19
    • 1970-01-01
    相关资源
    最近更新 更多