【问题标题】:WPF textblock which allows the selection of text允许选择文本的 WPF 文本块
【发布时间】:2016-04-16 10:06:59
【问题描述】:

我的应用中有一个 TextBlock,其中包含带有一些 URL 的文本。同时,我希望文本是可选择和可复制的。如果我使用TextBox 元素,我将失去添加Hyperlinks 的能力,如果我使用TextBlock,我将失去选择功能。

说了这么多,您建议如何同时保留超链接和选择(使用鼠标和键盘)功能?

编辑:此应用程序是一个聊天应用程序,我希望在 URL 可单击时可选择传入消息。

【问题讨论】:

  • 我认为RichTextBox 是你要找的东西
  • @dkozl 感谢您的回复,我不知道如何将超链接添加到 RichTextBox,目前在我正在使用 TextBlock.Inlines.Add 添加超链接的 TextBlock 中。我的意思是我用谷歌搜索过,但 RichTextBox 有很大不同,也许我应该开始学习。

标签: c# wpf xaml


【解决方案1】:

不确定,但也许您可以使用 RichTextBox。见:Adding hyperlink in textbox

当用户键入一个链接并根据用户文本(插入超链接)修改文本时,您必须设法找到链接。或者添加一种方式,如 ContextualMenu,为用户提供添加超链接。

我不确定您是否能找到完全符合您要求的控件。祝你好运!

【讨论】:

    【解决方案2】:

    Webbrowser 控件将允许文本选择和超链接。

    【讨论】:

    • 网络浏览器不是一个文本编辑控件,它是一个网络浏览器。我想要一个文本元素。
    • 文本块也不用于文本编辑。它纯粹显示文本。如果你需要编辑文本,那么你需要一个文本框。
    • 我实际上需要选择,而不是编辑。我需要点击超链接和文本选择。
    • 您可以通过使用 navigatetostring() 方法的 Web 浏览器控件执行此操作,并将 HTML 传递给它,其中可以包含文本和/或超链接。对于您的问题,这实际上是 wpf 和 silverlight 中相当常见的解决方法。
    【解决方案3】:

    你可以这样做:

    <Label>
        <Hyperlink NavigateUri="bob@contoso.com">
            <Run Text="bob@contoso.com"/>
        </Hyperlink>
    </Label>
    

    如果您想在单击时实际导航到该链接,您可以适当地设置样式并向超链接添加命令

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-21
      • 2011-06-13
      • 2023-04-01
      • 1970-01-01
      • 2020-01-20
      相关资源
      最近更新 更多