【发布时间】:2021-08-31 06:45:24
【问题描述】:
我有一个 TreeView,里面是 TextBoxes。
它看起来像这样:
我正在努力实现:
- 当我点击另一个复选框时应该失去焦点
- 当我点击已编辑的复选框时,它应该失去焦点,而不是保持可编辑状态。
我可以通过按 Enter 或 Tab 键(或任何其他键)来实现类似的效果。
private void OnModuleNameEditKeyDownHandler(object sender, KeyEventArgs e)
{
if (e.Key == Key.Return || e.Key == Key.Tab)c
{
ModuleName.Visibility = Visibility.Visible;
ModuleNameEdit.Visibility = Visibility.Collapsed;
}
}
有办法吗? 功能是当我双击 TextBox 时,它变为可编辑,但我希望,当单击超出复选框范围时,在再次双击它之前不对其进行编辑。
【问题讨论】:
-
如果没有带有 UI 元素布局的至少部分 XAML 代码,将无法回答您的问题。 ModuleName、ModuleNameEdit 的元素是什么?它们与 IsReadOnly 有什么关系?为什么更改 IsReadOnly 会更改项目的可视化?
-
你为什么不能通过 LostFocus 和 DoubleClick 事件来做到这一点?
-
@JonathanWillcock 如何检查文本框何时失去焦点(顺便说一句,有逻辑焦点和键盘焦点我不明白)所以我可以使其 Visibility.Collapsed ?
-
在 XAML 中为 TextBox 输入 "LostFocus=" ,它会提示您创建一个新的事件处理程序。