我有以下內容TabControl:
<TabControl x:Name="Tabs">
<TabItem x:Name="TabItem1" Header="TabItem1" />
<TabItem x:Name="TabItem2" Header="TabItem2" />
</TabControl>
TabItem1有一個工具列,里面有一些按鈕。TabItem2沒有工具列。
由于將 .NET 版本從 4.6.1 升級到 4.8,我遇到了以下行為:
- 當
TabItem1用戶選擇時,工具列內的第一個按鈕獲得焦點。 - 當用戶現在選擇
TabItem2它時,有時會切換回TabItem1. 這似乎是因為第一個按鈕TabItem1仍然是焦點。
為什么 .NET 4.6.1 沒有發生這種情況?有沒有辦法避免這個問題?
uj5u.com熱心網友回復:
TabItem我通過對所有s使用全域事件處理程式找到了一種解決方法。事件中的第一個控制元件TabItem(通常是標題)被聚焦。
private void Application_Startup(object sender, StartupEventArgs e)
{
EventManager.RegisterClassHandler(typeof(TabItem), Selector.SelectedEvent, new RoutedEventHandler(TabItem_Selected));
}
private void TabItem_Selected(object sender, RoutedEventArgs e)
{
TabItem item = e.Source as TabItem;
item?.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
}
但我仍然想知道為什么我會遇到這種奇怪的行為......根本不需要使用這種解決方法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/513558.html
標籤:C#wpfxml
