В моем приложении WPF
у меня есть много текстовых полей на одной странице. Я хочу сосредоточиться на первом текстовом поле. Я искал его и пробовал разные решения.WPF - установить фокус на текстовое поле
XAML Код:
<StackPanel Width="350" HorizontalAlignment="Left" >
<TextBlock x:Name="CustNamelbl" Text="C U S T O M E R N A M E"
Style="{StaticResource LightBoldTxtblkStyle }"/>
<Grid Height="35">
<TextBox x:Name="CustName" Style="{StaticResource Txtbox}"
LostFocus="CustName_LostFocus_1" TabIndex="1"
CommandManager.PreviewExecuted="CustName_PreviewExecuted"
ContextMenu="{x:Null}" PreviewTextInput="CustName_PreviewTextInput"
Margin="0,0,0,0" GotFocus="CustName_GotFocus"/>
<Rectangle Fill="White" Height="2" Opacity="0.2"
VerticalAlignment="Bottom"></Rectangle>
</Grid>
</StackPanel>
C# Код:
CustName.Focus();
Keyboard.Focus(CustName);
Используя этот код я получаю Focus
на этом TextBox
. Я также могу открыть системную клавиатуру. Однако я ничего не могу напечатать в этом TextBox
. Кроме того, этот сфокусированный курсор не является мигающим курсором, а просто устойчивым курсором.
Попробуйте установить фокус на загруженном обработчик событий. Я предполагаю, что вы устанавливаете фокус в конструкторе. Подробнее читайте здесь: [Обзор фонового ввода WPF] (http://msdn.microsoft.com/en-us/library/aa969768%28v=vs.110%29.aspx) – Reniuz
Я думаю, что проблема заключается в 'CustName_GotFocus '. Попробуйте удалить этот метод из 'xaml' пока и посмотрите, поможет ли это. – XAMlMAX