제가 실수를하지 않는 한 (내가 무엇이든지간에) TabControl
의 버그가 있고 TabItems
의 가시성에 관련된 버그가 있습니다. 버그를 재현하는 XAML은 다음과 같습니다.이 tabcontrol/tabitem 버그에 대한 회피책이 있습니까
<UserControl x:Class="TabControl_bug.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">
<Grid x:Name="LayoutRoot" Background="White">
<sdk:TabControl>
<sdk:TabItem Header="tabItem1" Visibility="Collapsed">
<TextBlock Text="TabItem1 which should not be visible" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</sdk:TabItem>
<sdk:TabItem Header="tabItem2">
<TextBlock Text="TabItem2 which should be visible" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</sdk:TabItem>
</sdk:TabControl>
</Grid>
</UserControl>
이 코드를 실행하면, 당신은 TabItem2은 "선택"되지 않는 것을 볼 수 있습니다 때문에 표시되는 내용이 표시되지해야
TabItem의 1
탭을 선택하면 당연히 TabItem2 콘텐츠가 표시되고 tabItem1로 돌아갈 방법이 없지만 문제는 처음 화면에 표시됩니다.
SelectedIndex
속성을 1로 설정하면 올바른 내용이 표시됩니다. Howerver 나는 XAML에서 탭 중 어느 것이 먼저 선택되어야하는지 모른다.
이 문제점의 해결 방법은 무엇입니까? 이상적으로, tabcontrol은 그것이 처음 보이는 tabitem을 미리 선택했다.
수 우리 분명히 뭔가까지. 기본 선택 항목은 첫 번째 항목 (색인 0)이라는 것을 알고 있습니다. 잠시 동안 탭 항목이 축소되지 않았다고 가정합니다. "어느 탭을 먼저 선택해야합니까?" 또는 기본값이 맞습니까? 기본값이 올바른 경우 기본값이 실제로 축소되어 있으면 사용 가능한 다음 탭을 선택해야합니다. Xaml에서 축소 된 것을 볼 수 있으므로 SelectedIndex가 무엇인지 확인할 수 있습니다. – AnthonyWJones
코드의 결과 여야 할 내용이 무엇인지 알 수없는 경우 해당 코드가 SelectedIndex를 설정하면 안됩니까? – AnthonyWJones
해결 방법 : TabControl의 Loaded 이벤트를 구독하면 첫 번째 표시된 TabItem이 발견되고 선택한 것으로 표시됩니다. – NestorArturo