У меня есть окно с двумя TabControls. Один - Left-Aligned, другой - вправо. Заголовки TabControls выровнены в верхней строке.WPF: два TabControls/Switching работают под Win7/.NET 4.5, но не под Windows 8.1/.NET 4.5.1
Всякий раз, когда я нажимаю TabItem, другой TabControl не сфокусирован.
Это отлично работает на моем компьютере разработки (Windows 7, .NET Framework 4.5).
Однако, когда я выполняю его под ПК с Windows 8.1 (.NET 4.5.1), я не могу переключиться на выровненный по вертикали TabControl. Когда я нажимаю на TabItem внутри него, ничего не происходит.
XAML из MainWindow:
<Window x:Class="TabGroupProblem.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded">
<Grid>
<TabControl GotFocus="TabControl_GotFocus" x:Name="c1">
<TabItem Header="One">h</TabItem>
<TabItem Header="Two">i</TabItem>
</TabControl>
<TabControl GotFocus="TabControl_GotFocus_1" x:Name="c2">
<TabControl.Resources>
<Style TargetType="{x:Type TabPanel}">
<Setter Property="HorizontalAlignment" Value="Right" />
</Style>
</TabControl.Resources>
<TabItem Header="Three">j</TabItem>
<TabItem Header="four">k</TabItem>
</TabControl>
</Grid>
</Window>
Обработчики событий:
private void TabControl_GotFocus(object sender, RoutedEventArgs e)
{
// c1 to foreground
System.Windows.Controls.Grid.SetZIndex(c2, -1);
c2.SelectedIndex = -1;
}
private void TabControl_GotFocus_1(object sender, RoutedEventArgs e)
{
// c2 to foreground
System.Windows.Controls.Grid.SetZIndex(c2, 1);
c1.SelectedIndex = -1;
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
System.Windows.Controls.Grid.SetZIndex(c1, 0);
System.Windows.Controls.Grid.SetZIndex(c2, -1);
c2.SelectedIndex = -1;
}
Почему это произошло, и что я могу сделать против него?
редактировать: Switched Конечных рамок для .NET 4.5.1 на моем компьютере разработки. Переключение между TabControls все еще работает на моем ПК (и все еще не на компьютере с Windows 8.1)
К сожалению, это не работает. Я думаю, кнопки переключались между «штабелированными» холстами/сетками? (Итак, я должен преобразовать каждый TabItem в такой слой?) –