在TextBlock中,是否可以通过触摸来选择特定单词?

Mua*_*lig 4 c# silverlight windows-phone-7 windows-phone-7.1

在我的应用程序中,我有一个TextBlock包含一些单词(如20或25).我希望用户能够点击TextBlock中的单词并在应用程序中检索它以便在之后使用它.

有没有人有想法?

我试过只读TextBox.但我需要点击它3次来选择其中的一个单词,我对复制和粘贴功能无能为力.

提前致谢.

Mua*_*lig 5

简单回答:你做不到

解决方法:使用TextBox重新设计的样子TextBlock

TextBox box= new TextBox();
box.Style = (Style)App.Current.Resources["CopyTextBlock"];
Run Code Online (Sandbox Code Playgroud)

这里寻找"CopyTextBlock"风格.

过载GotFocus:

box.GotFocus += textBox_GotFocus;
Run Code Online (Sandbox Code Playgroud)

有:

private void textBox_GotFocus(object sender, RoutedEventArgs e)
{
    TextBox txtBox = (TextBox)sender;

    char[] strDataAsChars = txtBox.Text.ToCharArray();
    int i = 0;

    for (i = txtBox.SelectionStart - 1; ((i >= 0) && (strDataAsChars[i] != ' ')); --i) ;
    int selBegin = i + 1;

    for (i = txtBox.SelectionStart; ((i < strDataAsChars.Length) && (strDataAsChars[i] != ' ')); ++i) ;
    int selEnd = i;

    txtBox.Select(selBegin, selEnd - selBegin);
    Console.WriteLine("\n" + txtBox.SelectedText); 
}
Run Code Online (Sandbox Code Playgroud)

GotFocus功能的来源.