【问题标题】:Prevent selection change with mouse in a TextBox防止在文本框中使用鼠标更改选择
【发布时间】:2023-04-06 07:26:01
【问题描述】:

在 WPF 中,有没有办法防止文本选择因用户的鼠标活动而改变?我尝试将IsHitTestVisible 设置为False,但似乎也取消了一些其他功能。

我基本上是在创建一个“蒙面文本框”,它以“HH:MM AM”格式显示时间,并允许用户按向上/向下键来更改小时、分钟和 AM/PM 部分的值。左右箭头键让用户在部件之间移动。活动部分通过文本选择显示,因此我不希望用户能够单击某处来更改选择。

【问题讨论】:

  • 您希望用户不要更改文本框中的文本?
  • @nit:至少不是通过打字。阅读我上面的编辑。
  • 你可以设置你的 TextBox.IsReadOnly = true.. 这样用户就不能在你的文本框中输入
  • 请阅读我的解释。我的文本框已经是只读的,但这并不能阻止用户通过鼠标更改文本选择。

标签: .net wpf textbox selection


【解决方案1】:

您可以尝试根据要求处理 PreviewMouseDown 或 PreviewMouseLeftButtonDown 事件:

<TextBox Text="some text" PreviewMouseDown="TextBox_PreviewMouseDown"/>

在处理程序中:

private void TextBox_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
    e.Handled = true;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    相关资源
    最近更新 更多