在.cs中的HyperlinkButton.Content中设置TextBox的值
本文关键字:设置 TextBox 的值 Content cs 中的 HyperlinkButton | 更新日期: 2023-09-27 18:20:58
目前我有一个超链接按钮:
<HyperlinkButton
Name="HyperLinkNav"
FontSize="24"
HorizontalContentAlignment="Left" Foreground="White">
<HyperlinkButton.Content>test</HyperlinkButton.Content>
</HyperlinkButton>
在我身后的代码中,我有:
HyperLinkNav.Content = "Please select a link";
将<HyperlinkButton>
内容设置为"请选择链接"。
我想做的是更改<HyperlinkButton>
的模板以包含TextBox
,类似于以下内容:
<Border Background="{TemplateBinding Background}" Margin="{StaticResource PhoneHorizontalMargin}" Padding="{TemplateBinding Padding}">
<!--<TextBlock x:Name="TextElement" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Text="{TemplateBinding Content}" TextDecorations="Underline" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>-->
<ContentPresenter x:Name="TextElement" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
这将允许我在超链接按钮中添加一个文本框:
<HyperlinkButton.Content>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Next Page"/>
<Image Source="SampleImageResource.jpg" Width="50" Height="50"/>
</StackPanel>
</HyperlinkButton.Content>
然而,我需要更新后面的代码,这样它就不会更新<HyperlinkButton>.Content
,而是更新TextBlock
。
有什么想法吗?
您可以尝试:
<HyperlinkButton.Content>
<StackPanel Orientation="Horizontal">
<TextBlock x:Name="TB" Text="Next Page"/>
<Image Source="SampleImageResource.jpg" Width="50" Height="50"/>
</StackPanel>
</HyperlinkButton.Content>
在后面的代码中:
TB.Text = "Please select a link";
我不确定这是否是你想要的。我试着回答我从这个问题中理解的内容。
类似的东西应该适用于您:
<TextBlock x:Name="TB" Text="{Binding RelativeSource= {RelativeSource FindAncestor,
AncestorType={x:Type HyperlinkButton}}, Path=TargetName} ... />
在实践中,您将其Text
绑定到类型HyperlinkButton
的TargetName
的第一个出现的祖先。通过这种方式,您应该能够继续像一样进行编码
HyperLinkNav.TargetName= "Please select a link";