TextBlock Видимость в зависимости от выбранного TabItem - Триггеры нужны? - PullRequest
0 голосов
/ 20 июня 2019

Я создал 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 снова показывает первый текстовый блок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...