当其文本为空时,我正在尝试使用 ControlTemplate 中的触发器将自定义控件的背景设置为可视画笔。下面显示相关代码:
<ControlTemplate.Triggers>
<Trigger Property="Text" Value="">
<Setter TargetName="MyBorder" Property="Background">
<Setter.Value>
<VisualBrush Opacity="0.4" Stretch="None" TileMode="None">
<VisualBrush.Visual>
<TextBlock Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=BackgroundText}" />
</VisualBrush.Visual>
</VisualBrush>
</Setter.Value>
</Setter>
</Trigger>
</ControlTemplate.Triggers>
但是,当文本为空时,不会应用视觉画笔。但是,如果我在代码中创建可视画笔并将其作为依赖属性公开,则以下代码确实有效:
<ControlTemplate.Triggers>
<Trigger Property="Text" Value="">
<Setter TargetName="MyBorder" Property="Background" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=BackgroundBrush}" />
</Setter>
</Trigger>
</ControlTemplate.Triggers>
不过,我宁愿在 XAML 中定义画笔。为什么第二个绑定可以正常工作,但第一个不能正常工作?