c# - 启用复制的通用应用程序 Windows Phone TextBox.SelectAll() 不起作用

标签 c# textbox clipboard win-universal-app selectall

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

a busy cat
(来源:free.fr)

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

以下测试无效:

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>

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();
        }

Click 事件上的尝试什么都不做。 try on GotFocus 事件选择了所有文本,但上下文复制图标菜单和两个句柄未显示。 如果您在 Click 方法上添加“text.Focus(FocusState.Programmatic);”然后选择文本但未显示复制图标。不幸的是,如果您用手指触摸此文本以显示“复制图标”,则您会失去选择。

最佳答案

@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);
 }

关于c# - 启用复制的通用应用程序 Windows Phone TextBox.SelectAll() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26956959/

相关文章:

c# - 如何在 C# 中阻止键盘和鼠标输入?

c# - String.Format 类实用程序的正则表达式

WPF TextBox 检测鼠标是否位于文本上方

文本框中显示列表的 C# 问题

android剪贴板广播接收器

c# - 如何将条码图像插入 PrintDialog?

c# - CodeContracts "Required"理解

c++ - 编辑框的最后一个字符位置

python - Windows 10 Linux 子系统 - Python - 字符串到计算机剪贴板

c# 剪贴板查看器...在 Firefox 上事件触发两次