用于不透明掩码的ContentPresenter

本文关键字:ContentPresenter 掩码 不透明 用于 | 更新日期: 2023-09-27 18:11:04

我正在为toggleButtons创建一个自定义controlTemplate,它根据切换状态改变指定图像的颜色。我的计划是使用一个基于visualState的颜色矩形,并使用图像的不透明性掩码。我得到的设计时错误是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>

用于不透明掩码的ContentPresenter

ContentPresenter没有提供任何东西。它是一个控件,像任何其他控件一样,它继承自FrameworkElement/UIElement。

"OpacityMask"属性,期望一个笔刷(就像你的错误所述)。画笔从DependencyObject继承。

长话短说,不,你不能那样做。

请试着更准确地解释你想要完成的任务。

相关文章:
  • 没有找到相关文章