Windows 应用商店应用程序 - 选择文本并点击

Posted

技术标签:

【中文标题】Windows 应用商店应用程序 - 选择文本并点击【英文标题】:Windows Store aps - select text and tap 【发布时间】:2016-06-16 12:30:59 【问题描述】:

TextBlock 文本选择有问题(Windows 应用商店应用程序,C#)

如果我设置了 IsTextSelectionEnabled = True,那么我就无法点击文本。 我需要能够在点击文本时打开 popup 并选择此文本,但似乎我不能同时做到这两个。

有没有办法同时拥有 - Text SelectionTap - 对于一个 TextBlock

已编辑:我需要文本选择才能复制文本。

已编辑TextSelectionCopy 功能适用于多字文本,其中并非每个字都是可点击的。

    设置 TextBlock 属性 IsTextSelectionEnabled = True

    将文本设置为TextBlock,使用TextBlock.Inlines

    textBlock.Inlines.Add(new Run()  Text = "Click " );
    Hyperlink hyperlink = new Hyperlink();
    hyperlink.Inlines.Add(new Run()  Text = "here" );
    hyperlink.Click += hyperlink_Click;
    textBlock.Inlines.Add(hyperlink);
    

但是如果整个文本都是可点击的,那么这个解决方案就没有帮助

    如果我这样设置文本:

    textBlock.Text = "Click here";
    textBlock.Tapped += textBlock_Tapped;
    

然后我无法点击文本。我只能复制这段文字。

    如果我这样设置文本:

    Hyperlink hyperlink = new Hyperlink();
    hyperlink.Inlines.Add(new Run()  Text = "Click here" );
    hyperlink.Click += hyperlink_Click;
    textBlock.Inlines.Add(hyperlink);
    

然后我无法复制文本。我只能点击它。

【问题讨论】:

【参考方案1】:

使用IsTextSelectionEnabled 将自行处理Tap 事件。因此,您将无法同时使用两者。如果您想在选择文本时显示PopUp,您可以使用SelectionChanged 事件。

更新

如果您只需要用户能够复制文本的任何部分,则无需创建任何PopUp。只需启用IsTextSelectionEnabled,用户就可以选择任何文本部分,按下鼠标右键并使用TextBlock自己的PopUp复制文本。如果是触摸或笔交互,则此PopUp 将在用户选择文本后立即显示。

【讨论】:

如果我使用SelectionChanged 事件,那么它总是会在文本选择时打开弹出窗口。我需要能够在用户点击文本时打开 PopUp,并且能够复制相同的文本。这可能吗? @VictoriaO。所以你希望用户能够选择任何文本或只是单词? 任何文本。有时只有一个词,它是可点击的。 @VictoriaO。那么你为什么不直接使用 RichTextBlock 呢?它将为用户提供自行复制文本的能力。选择文本后,用户可以通过按鼠标右键来复制它,或者如果用户使用笔或触摸,将在选择文本后立即显示弹出窗口。 你没有正确理解我的意思。 PopUp 不用于复制。例如,我有一个带有文本“更多信息”的 TextBlock。当我点击它时,它会向我显示一个包含特定信息的弹出窗口,但我需要能够复制文本“更多信息”。

以上是关于Windows 应用商店应用程序 - 选择文本并点击的主要内容,如果未能解决你的问题,请参考以下文章

Windows 商店应用程序 WInRT XAML C# - 如何获取导航页面文本框值

在 Windows 商店应用程序中通过验证将双重绑定到文本框

Windows 应用商店应用标准样式与 Windows 应用商店应用字体指南

Windows 应用商店应用程序 - 动态绑定

Windows 11运行Android应用得到保障,亚马逊应用商店将支持AAB

适用于 Windows 应用商店应用的带有 FlowLayout 的 GridView