【问题标题】:Set textbox as focused element将文本框设置为焦点元素
【发布时间】:2018-08-01 06:27:40
【问题描述】:

我正在尝试将焦点设置在文本框上。我试过set focus for cursor

但所做的只是将光标放在那里并冻结它。您实际上仍然无法键入任何内容。您最终仍然需要单击文本框进行输入。我做的和他们在那个问题上做的完全一样。我读了一些关于逻辑焦点和物理焦点的东西?不太确定如何去做我需要的事情。我是否需要创建一个附加属性并以这种方式处理它?我试图不惜一切代价避免代码落后。

另外,点击“提交”按钮后,我想让它再次将焦点设置回文本框

这是我尝试过的代码,FocusManager 位于包含文本框的网格上:

FocusManager.FocusedElement="{Binding ElementName=FocusedTextBox}"


<TextBox Text="{Binding serialNumber}"
         x:Name="FocusedTextBox">
</TextBox>

正如我所说,所做的只是将光标放在那里,直到再次单击文本框,您才能输入任何内容。有什么建议吗?

谢谢,

【问题讨论】:

  • 你为什么要不惜一切代价避免背后的代码?听起来你会想要使用事件处理程序,它会驻留在你的代码中......
  • 因为在一般情况下使用后面的代码只是不好的做法。我宁愿使用附加属性并维护 MVVM

标签: c# wpf xaml


【解决方案1】:

只需为文本框命名(例如“theTextBox”)并调用theTextBox.Focus()

如果您尝试在 MVVM 中使用数据绑定执行此操作(您应该这样做),那么您可以使用 an attached property 绑定到视图模型中的属性。

【讨论】:

  • 是的,我正在尝试维护 MVVM。你能举一个我需要使用的附加属性的例子吗?
  • 查看我的链接上接受的答案,有完整的源代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-23
  • 1970-01-01
  • 1970-01-01
  • 2012-01-22
  • 2018-10-05
  • 1970-01-01
相关资源
最近更新 更多