目前我有一个HyperlinkButton:
<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>
这将允许我将TextBox添加到HyperlinkButton:
<HyperlinkButton.Content>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Next Page"/>
<Image Source="SampleImageResource.jpg" Width="50" Height="50"/>
</StackPanel>
</HyperlinkButton.Content>
但是我需要更新后面的代码,以便更新<HyperlinkButton>.Content
而不是更新TextBlock
。
任何想法?
答案 0 :(得分:0)
你可以尝试:
<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";
我不确定这是不是你想要的。我试图回答我从这个问题中理解的内容。
答案 1 :(得分:0)
像这样的应该为你工作:
<TextBlock x:Name="TB" Text="{Binding RelativeSource= {RelativeSource FindAncestor,
AncestorType={x:Type HyperlinkButton}}, Path=TargetName} ... />
在实践中,您将Text
绑定到类型为HyperlinkButton
的{{1}}的第一个已发生的祖先。通过这种方式,您应能够继续像这样编码
TargetName