通用应用程序Windows Phone TextBox.SelectAll()启用了复制功能不起作用

efd*_*mmy 5 c# clipboard textbox selectall win-universal-app

在Store Apps/Universal Apps/Windows Phone 8.1 Visual Studio 2013项目中,如何以编程方式选择TextBox中的所有文本,并启用上下文复制图标菜单,如下面的屏幕截图所示:

一只忙碌的猫http://texttophone.free.fr/selectallwithcopyenabled.png

需要在上下文中显示文本,其中用户很可能想要将其复制到剪贴板中.

以下测试不起作用:

XAML

        <TextBox x:Name="MyTextBox" Grid.Row="0" 
                 HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
                 Text="The text I want to select"
                 IsReadOnly="True"
                 IsEnabled="True"
                 GotFocus="MyTextBox_GotFocus"></TextBox>
        <Button x:Name="ButtonSelectAll" Grid.Row="1"
                Content="Select All"
                HorizontalAlignment="Center"
                Click="ButtonSelectAll_Click"></Button>
Run Code Online (Sandbox Code Playgroud)

C#

        private void ButtonSelectAll_Click(object sender, RoutedEventArgs e)
        {
            MyTextBox.SelectAll();
            // MyTextBox.Focus(FocusState.Programmatic);
        }

        private void MyTextBox_GotFocus(object sender, RoutedEventArgs e)
        {
            MyTextBox.SelectAll();
        }
Run Code Online (Sandbox Code Playgroud)

试试Click事件什么都不做.尝试GotFocus事件选择所有文本,但上下文复制图标菜单和两个句柄不显示.如果你添加Click方法"text.Focus(FocusState.Programmatic);" 然后选择文本但不显示复制图标.不幸的是,如果您用手指触摸此文本并打算出现"复制图标",则会丢失选择.

Leo*_*rdo 0

@efdummy 试试这个:

 private void ButtonSelectAll_Click(object sender, RoutedEventArgs e)
 {
    MyTextBox.Select(0, MyTextBox.Text.Length);
    string selectedText = MyTextBox.SelectedText;
    DataPackage myPackage = new DataPackage();
    myPackage.SetText(selectedText);
    Clipboard.SetContent(myPackage);
 }
Run Code Online (Sandbox Code Playgroud)