【问题标题】:Bind RequestNavigate method of Hyperlink control in Wpf Rich Textbox在 Wpf 富文本框中绑定 Hyperlink 控件的 RequestNavigate 方法
【发布时间】:2018-04-19 12:34:10
【问题描述】:

我有一个非常简单的屏幕,它显示了一些内容和一个超链接。由于超链接分布在多行上,我不能使用 WPF 按钮,因为它会将整个链接移动到客户端无法接受的新行中。

这是一个 Caliburn 微型 MVVM 应用程序,我在视图模型的方法中处理打开链接的过程。我不想使用代码隐藏,因此需要绑定超链接的 RequestNavigate 事件。

富文本框的代码是

 <RichTextBox FontSize="13"  BorderThickness="0" IsDocumentEnabled="True" IsReadOnly="True" Block.TextAlignment="Center"  Width="270">
        <FlowDocument>
            <Paragraph>
                Download Failed. Please
                <Bold>check your connection and try again or</Bold>
                <Hyperlink >contact your provider</Hyperlink>
            </Paragraph>
        </FlowDocument>
    </RichTextBox>

输出是

【问题讨论】:

  • 你能分享你的视图模型代码吗?

标签: c# wpf hyperlink


【解决方案1】:

Hyperlink 实现了ICommandSource 接口,因此您可以使用它的 Command 属性绑定到 ViewModel 上的 Command,就像使用 Button 一样。

<Hyperlink Command="{Binding MyNavigationRequestedCommand}">contact your provider</Hyperlink>

我猜你对实现很熟悉,因为你提到你会使用一个按钮,但这里是一个link to an explanation 在这里。如果您需要专门处理 RequestNavigate 事件,您可以使用 EventTrigger + InvokeCommandAction from System.Widnows.Interactivity,如 here 所述。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-22
    • 2010-12-16
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    相关资源
    最近更新 更多