在运行时更改XAML ControlTemplate子元素属性
本文关键字:元素 属性 ControlTemplate XAML 运行时 | 更新日期: 2023-09-27 18:25:07
我有这个:
<ControlTemplate TargetType="Window">
<TextBlock x:Name="tbFoo" Text="LOREM IPSUM" />
</ControlTemplate>
有没有办法在运行时更改tbFoo
的文本?
选项1:
将属性绑定到TemplatedParent
:的某些属性
<ControlTemplate TargetType="Window">
<TextBlock x:Name="tbFoo" Text="{TemplateBinding Title}" />
</ControlTemplate>
然后:
<Window Title="My Window"/>
将导致tbFoo
具有"我的窗口"文本。
选项2:使用Triggers
:
<ControlTemplate TargetType="Window">
<TextBlock x:Name="tbFoo"/>
<ControlTemplate.Triggers>
<Trigger Property="IsActive" Value="True">
<Setter TargetName="tbFoo" Property="Text" Value="Window is Active!"/>
</Trigger>
<Trigger Property="IsActive" Value="False">
<Setter TargetName="tbFoo" Property="Text" Value="Window is Inactive!"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>