我正在创建一个针对按钮的样式。将应用样式的按钮在其内部的堆栈面板中具有图像和文本块。我希望使用触发器来影响基于某些条件的子控件的属性。
我想使用按钮样式来影响堆栈面板的方向以及图像的定义宽度。
我已经浏览了样式设置器的属性智能中可用的各种子控件类型......我可以看到像Grid,DockPanel和TextBlock这样的东西...但是我正在寻找的那些在他们缺席的情况下非常引人注目。
是否有原因无法影响某些子控件类型?有什么方法可以在不滚动显式公开我要影响的子控件属性的自定义控件的情况下执行此操作?
您可以使用隐式样式:
<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>
当然,您也可以添加触发器。