Windows 应用商店应用程序 - 选择文本并点击
Posted
技术标签:
【中文标题】Windows 应用商店应用程序 - 选择文本并点击【英文标题】:Windows Store aps - select text and tap 【发布时间】:2016-06-16 12:30:59 【问题描述】:TextBlock 文本选择有问题(Windows 应用商店应用程序,C#)。
如果我设置了 IsTextSelectionEnabled = True
,那么我就无法点击文本。
我需要能够在点击文本时打开 popup 并选择此文本,但似乎我不能同时做到这两个。
有没有办法同时拥有 - Text Selection 和 Tap - 对于一个 TextBlock?
已编辑:我需要文本选择才能复制文本。
已编辑:TextSelection 和 Copy 功能适用于多字文本,其中并非每个字都是可点击的。
设置 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 应用商店应用字体指南