Я недавно начал изучать WPF, одна из задач, которую я для себя создал, состояла в том, чтобы имитировать конкретный пользовательский интерфейс, который я нашел в Интернете, и посмотреть, как далеко я могу зайти. попытка решить последние 48 часов безрезультатно - изменить выбранное изображение табеитем при изменении его выбора.
Вот так.
Первая должна быть на выбранной вкладке, а вторая - при выборе другой вкладки, и это будет иметь место для каждого элемента вкладки, где, если она не выбрана, ее изображение не будет «подсвечено».
У меня есть этот собственный стиль для элемента управления вкладками.
<Style TargetType="TabItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TabItem">
<Grid Name="Panel">
<ContentPresenter x:Name="ContentSite" VerticalAlignment="Center" HorizontalAlignment="Center" ContentSource="Header" Margin="10,2"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="Panel" Property="Background" Value="#421d47" />
</Trigger>
<Trigger Property="IsSelected" Value="False">
<Setter TargetName="Panel" Property="Background" Value="Transparent" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Я попробовал несколько вещей.
- Я пытался создать новый стиль для каждой отдельной вкладки, который наследовал от пользовательского стиля.
<Style x:Name="tab1Image" TargetType="TabItem" BasedOn="{StaticResource {x:Type TabItem}}">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Image.Source" Value="HomeLitUp.png"/>
</Trigger>
<Trigger Property="IsSelected" Value="False">
<Setter Property="Image.Source" Value="HomeLitDown.png"/>
/Trigger>
</Style.Triggers>
</Style>
он не работал.
2.Я попытался назначить триггеры дляэлементы вкладки, когда я делаю их
<TabItem Width="50" Height="45">
<TabItem.Style>
<Style x:Name="tab1Image" TargetType="TabItem" BasedOn="{StaticResource {x:Type TabItem}}">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Image.Source" Value="HomeLitUp.png"/>
</Trigger>
<Trigger Property="IsSelected" Value="False">
<Setter Property="Image.Source" Value="HomeLitDown.png"/>
/Trigger>
</Style.Triggers>
</Style>
</TabItem.Style>
<TabItem.Header>
<Image Width="24" Source="HomeLitUp.png"/>
</TabItem.Header>
</TabItem>
3.Я попытался добавить изображение в кастомзатем попробуйте переопределить событие триггера
<Grid Name="Panel">
<ContentPresenter x:Name="ContentSite" VerticalAlignment="Center" HorizontalAlignment="Center" ContentSource="Header" Margin="10,2"/>
<Image Name="Image" Width="24"></Image>
</Grid>
Но это не сработало, и я не смог вызвать «Имидж» из того стиля, который основан на нем, потому что он выходит за рамки.
Напомним: я уверен, что есть решение, которое я просто не получаю, его легко заменить ВСЕ заголовки вкладок на два изображения, я просто не знаю, как изменить каждую вкладку, основываясь на выбранных true / false, для ее собственных двух наборовизображений.
Буду признателен за любую помощь, так как мой мозг искал и пытался последние 48 часов!