Когда его текст пуст, я пытаюсь установить фон пользовательского элемента управления для визуальной кисти, используя триггер в шаблоне 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. Почему вторая привязка работает правильно, а не первая?