如何阻止在 windows 商店应用程序中将文本粘贴到文本框中?
How can I block Pasting a Text into TextBox in windows store app?
我们需要在 XAML 页面的 TextBox 中禁用粘贴选项。因为我们正在为此处理问题和答案类型,所以我们需要禁用粘贴选项。
我建议不要禁用 copy/paste。在文本字段中禁用这些选项只会让用户感到厌烦。
但是,如果您要防止 Ctrl+C / Ctrl+V 组合,您可以使用
- KeyDown 事件 - 如果您获得该组合,例如,您可以使用静态方法清除剪贴板
Windows.ApplicationModel.DataTransfer.Clipboard.Clear();
- 未测试: ShortcutsEnabled property or Paste 方法,如果它们可用于您的项目类型中的文本框,可能就足够了。
编辑:确保您也禁用了对文本框的右键单击。
我处理了文本框的以下事件,解决了我的问题。
private void TextBox_ContextMenuOpening(object sender, ContextMenuEventArgs e)
{
try
{
e.Handled = true;
}
catch (Exception ex)
{
}
}
和
private void TextBox_KeyDown(object sender, KeyRoutedEventArgs e)
{
var ctrl = Window.Current.CoreWindow.GetKeyState(VirtualKey.Control).HasFlag(CoreVirtualKeyStates.Down);
if (ctrl) Clipboard.Clear();
}
我们需要在 XAML 页面的 TextBox 中禁用粘贴选项。因为我们正在为此处理问题和答案类型,所以我们需要禁用粘贴选项。
我建议不要禁用 copy/paste。在文本字段中禁用这些选项只会让用户感到厌烦。
但是,如果您要防止 Ctrl+C / Ctrl+V 组合,您可以使用
- KeyDown 事件 - 如果您获得该组合,例如,您可以使用静态方法清除剪贴板
Windows.ApplicationModel.DataTransfer.Clipboard.Clear();
- 未测试: ShortcutsEnabled property or Paste 方法,如果它们可用于您的项目类型中的文本框,可能就足够了。
编辑:确保您也禁用了对文本框的右键单击。
我处理了文本框的以下事件,解决了我的问题。
private void TextBox_ContextMenuOpening(object sender, ContextMenuEventArgs e)
{
try
{
e.Handled = true;
}
catch (Exception ex)
{
}
}
和
private void TextBox_KeyDown(object sender, KeyRoutedEventArgs e)
{
var ctrl = Window.Current.CoreWindow.GetKeyState(VirtualKey.Control).HasFlag(CoreVirtualKeyStates.Down);
if (ctrl) Clipboard.Clear();
}