У меня есть TextBox внутри Grid внутри DataTemplate, которому я хочу, чтобы фокус клавиатуры был виден. Я также обнаружил, что
<DataTemplate x:Key="DistanceView" DataType="{x:Type vm:ROI}">
<Grid FocusManager.FocusedElement="{Binding ElementName=tbDistance}">
<TextBox x:Name="tbDistance" Grid.Column="1" Grid.Row="1" VerticalAlignment="Bottom"/>
</Grid>
</DataTemplate>
у меня не сработало.
Однако когда я вызываю Focus () в родительском ContentControl
private void ContentControl_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
{
if ((sender as ContentControl).IsVisible)
{
(sender as ContentControl).Focus();
}
}
он начинает работать, и в текстовом поле отображается курсор. Я думаю, что FocusScope должен быть в фокусе, чтобы свойство FocusManager.FocusedElement имело какой-либо эффект.
Джерри