2012-04-12 46 views
9

我正在创建一个针对按钮的样式。样式将应用的按钮在其中的堆叠面板中具有图像和文本块。我正在寻找使用触发器来影响基于特定条件的子控件的属性。如何从样式中影响子控件属性

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

我已经看过在样式设置器的属性intellisence中可用的各种子控件类型...我可以看到诸如Grid,DockPanel和TextBlock之类的东西...但是我正在寻找在他们缺席时非常明显。

当我不能影响某些儿童控制类型时是否有原因?有没有办法做到这一点,而不是滚动自定义控件,显式暴露我想要影响的子控件属性?

回答

21

您可以使用隐式风格:

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

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

+4

完美的工作!我不知道你可以设置风格的资源。这正是我正在寻找的。当网站强制延迟到期时,我会在几分钟内接受您的回答。谢谢! – Chronicide 2012-04-12 16:43:12

+0

不幸的是,这在UWP应用程序中不起作用。 – ThisWillDoIt 2016-09-19 08:54:55

相关问题