如何接受焦点C#WPF UserControl

Pet*_*one 4 wpf user-controls focus

我正在尝试创建一个日期编辑UserControl,但使用TextBlock而不是TextBox,因为我想要一个输入上下文而不是管理六个可能的焦点.

我如何接受焦点?我尝试将Focusable设置为TRUE,但似乎还不够.还有什么我需要做的?

sa_*_*213 6

听起来你需要设置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>
Run Code Online (Sandbox Code Playgroud)

或者在codeBehind中:

FocusManager.SetFocusedElement(this, mytextblock);
Keyboard.Focus(mytextblock);
Run Code Online (Sandbox Code Playgroud)