我在资源中定义了下一个按钮的样式:
<Style x:Key="OKBtn" TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Grid>
<Rectangle .../>
<TextBlock x:Name="Text" ..>
<Run Language="en-en" Text="OK"/>
</TextBlock>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
我想在特定情况下从代码更改Button的文本开始.
即将“确定”(<运行语言=“ zh-cn” Text =“ OK” />)更改为“接受”.
我怎样才能做到这一点?
是否可以访问此TextBlock“文本”并仅为我的一个按钮更改内容,而不是为所有确定按钮更改内容?
我的按钮:
<Button x:Name="OkButton" Style="{DynamicResource OKBtn}" />
解决方法:
您可以从模板模板中借用一些道具,例如标签属性.因此,ControlTemplate中的TextBlock文本应如下所示.
<Run Language="en-en" Text="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path=Tag}"/>
您可以通过设置按钮的Tag属性来更改按钮标题.
OkButton.Tag = "Accept";
对于不是手动设置所有按钮文本的情况,可以在Tag属性为空时创建一些ValueConverter,以将ControlTemplate中的TextBlock文本设置为“ Ok”.