ฉันมีกล่องข้อความอยู่ในตารางภายใน 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 จึงจะมีผลใด ๆ
เจอร์รี่