wpf - 如何通过 XAML 设置 WPF 超链接文本

标签 wpf xaml mvvm

我有一个按钮,它的内容(文本)通过样式针对支持属性动态设置,如下所示。

<Button>
   <Button.Style>
      <Style>
         <Setter Property="Button.Content" Value="Advanced Search" />
         <Style.Triggers>
            <DataTrigger Binding="{Binding Path=IsAdvancedSearch}" Value="True">
               <Setter Property="Button.Content" Value="Standard Search" />
            </DataTrigger>
         </Style.Triggers>
      </Style>
   </Button.Style>
</Button>

我需要更改此按钮以仅显示具有相同动态文本的超链接。像这样:
<Button>
   <Button.Template>
      <ControlTemplate>
         <TextBlock>
            <Hyperlink>
               Standard Search
            </Hyperlink>
         </TextBlock>
      </ControlTemplate>
   </Button.Template>
</Button>

有没有办法通过样式动态设置超链接的文本(内联或其他标签)?

我无法通过 XAML 访问它。我让它与超链接内的文本 block 上的普通绑定(bind)一起工作,但这确实在 View 模型上创建了一个冗余属性。

最佳答案

您可以在超链接中嵌入另一个 TextBlock 并绑定(bind)它:

<TextBlock>
    <Hyperlink>
        <TextBlock Text="{Binding LinkText}" />
    </Hyperlink>
</TextBlock>

关于wpf - 如何通过 XAML 设置 WPF 超链接文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12417915/

相关文章:

c# - 如何在 textBlock 上设置点击效果并打开一个新的 WPF 窗口?

c# - 将数据加载到松散耦合 View 及其 View 模型/模型中的 MVVM 策略

c# - 如何使用 TreeView 连接 Silverlight 和 MVVM 中的 View ?

c# - WPF 依赖属性

c# - TypeConverter 可以用于构造函数参数吗

c# - 组合框文本显示与下拉列表中的不同

c# - 关闭实际的窗口并从ViewModel中打开一个新窗口

wpf - 如何在 ControlTemplate 中获取动画资源?

WPF RoutedEvent(通过 EventManager.RegisterClassHandler)

c# - 从 c# 调用在 xaml 中声明的 Storyboard