我正在为toggleButtons制作一个自定义的controlTemplate,它根据切换状态更改指定图像的颜色。我的计划是使用一个带有基于visualState的颜色的矩形,并使用图像作为其opacityMask。我得到的设计时错误是ContentPresenter需要一个笔刷。
让contentPresenter提供画笔是无效吗?contentPresenter的全部意义不就是使用样式提供控件的内容吗?
以下是我的代码的简化版本,以供参考:
<Style x:Key="customToggleButtonStyle" TargetType="ToggleButton">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ToggleButton">
<Rectangle>
<Rectangle.OpacityMask>
<ContentPresenter Content="{TemplateBinding Content}" />
</Rectangle.OpacityMask>
</Rectangle>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>发布于 2014-07-01 21:22:47
ContentPresenter不提供任何东西。它是一个控件,就像任何其他控件一样,它继承自FrameworkElement / UIElement。
"OpacityMask“属性需要一个画笔(就像你的错误所说的那样)。画笔继承自DependencyObject。
长话短说,不,你不能这么做。
请试着更准确地解释你想要实现的目标。您只是想修改控件内容的不透明度吗?
https://stackoverflow.com/questions/24498545
复制相似问题