gpt4 book ai didi

c# - 如何从代码隐藏更改 XAML 元素模板?

转载 作者:行者123 更新时间:2023-11-30 16:05:08 25 4
gpt4 key购买 nike

我在资源中定义了下一个按钮的样式:

<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 的文本。

即将“确定”(<Run Language="en-en" Text="OK"/>)更改为“接受”。我该怎么做?

是否可以访问此 TextBlock“文本”并准确地为我的一个按钮更改内容,但不能为所有 OK 按钮更改内容?

我的按钮:

<Button x:Name="OkButton" Style="{DynamicResource OKBtn}" />

最佳答案

你可以从模板Template中借用一些属性,例如Tag属性。所以ControlTemplate中的TextBlock文本应该是这样的。

<Run Language="en-en" Text="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path=Tag}"/>

您可以通过设置它的 Tag 属性来更改按钮标题。

OkButton.Tag = "Accept";

为了不手动设置所有按钮文本,您可以创建一些 ValueConverter 以将 ControlTemplate 中的 TextBlock 文本设置为“Ok” 标签 属性为空。

关于c# - 如何从代码隐藏更改 XAML 元素模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34059969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com