【发布时间】:2013-01-14 08:50:03
【问题描述】:
我正在尝试创建一个日期编辑用户控件,但使用 TextBlock 而不是 TextBox,因为我想要一个输入上下文而不是管理六个可能的焦点。
如何接受焦点?我尝试将 Focusable 设置为 TRUE,但似乎还不够。我还需要做什么?
【问题讨论】:
标签: wpf user-controls focus
我正在尝试创建一个日期编辑用户控件,但使用 TextBlock 而不是 TextBox,因为我想要一个输入上下文而不是管理六个可能的焦点。
如何接受焦点?我尝试将 Focusable 设置为 TRUE,但似乎还不够。我还需要做什么?
【问题讨论】:
标签: wpf user-controls focus
听起来你需要将KeyboardFocus 设置为元素
例子:
<UserControl x:Class="MyControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300"
FocusManager.IsFocusScope="True"
FocusManager.FocusedElement="{Binding ElementName=mytextBlock}">
<Grid>
<TextBox Name="mytextBlock" />
</Grid>
</UserControl>
或者在codeBehind中:
FocusManager.SetFocusedElement(this, mytextblock);
Keyboard.Focus(mytextblock);
【讨论】: