Я создал TabControl, содержимое заголовка которого состоит из двух текстовых блоков: один помечает заголовок именем, а другой - символьный шрифт.В зависимости от выбранного элемента TabItem я хочу показать текст заголовка в первом TextBlock, свернув его, как только будет выбран другой элемент TabItem (следовательно, отображается текст заголовка для текущего выбранного элемента TabItem).
Например: выборTabItem1 показывает TextBlock1 с текстом заголовка, TextBlock2 показывает шрифт символа.Выбор TabItem2 сворачивает видимость TextBlock1 и поэтому устанавливает для первой формы TextBlock видимость TabItem2 Collapsed значение Visible.
Я хотел бы попробовать решение xaml;с помощью кода я могу достичь желаемой функциональности.Думаю, мне понадобится какой-нибудь триггер, но я явно слишком неопытен с xaml, чтобы правильно их реализовать.
Вот что я получил до сих пор.Обратите внимание, что мой код впервые показывает ожидаемое поведение, но затем видимость TextBlock всегда устанавливается на «свернутый».Вот мой код:
<TabItem x:Name="Item2" GotFocus="Item2_GotFocus" LostFocus="Item2_LostFocus">
<TabItem.Header>
<StackPanel Orientation="Horizontal">
<TextBlock x:Name="Text2" FontSize="14" FontFamily="Quicksand" VerticalAlignment="Center" Content="TestEntry">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Visibility" Value="Collapsed"/>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=Item2, Path=IsFocused}" Value="True">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
<TextBlock Margin="20,0,0,0" FontSize="32" FontFamily="APPFONT" VerticalAlignment="Center">B</TextBlock>
</StackPanel>
</TabItem.Header>
</TabItem>
Запустив приложение, я вижу оба TextBlocks;как только другой TabItem выбран, видимость первого TextBlock устанавливается как свернутая.Повторное нажатие на этот элемент TabItem снова показывает первый текстовый блок.