Я пытаюсь изменить значок, используемый для кнопки переключения, в зависимости от того, какое состояние isChecked, но единственные примеры, которые я могу найти, как это сделать, использовать изображение для отображения значка.
Однако у меня есть статические стили значков, а не изображения, поэтому мне интересно, как я могу это сделать.
В качестве отправной точки, если я создам свой тумблер, как это:
<ToggleButton Style="{StaticResource ToggleButtonStyle}">
<Path Style="{StaticResource Test1IconStyle}" HorizontalAlignment="Right" />
</ToggleButton>
затем он отображается с помощью стиля ToggleButton и правильной иконки.
Итак, теперь скажем, я нажимаю кнопку, мне нужно сбросить "Path" в "Test2IconStyle" на основе значения isChecked.
Это возможно?
Вместо того, чтобы переключать стиль, я бы предложил иметь два разных пути в ваших ресурсах и на основе условия вы можете их переключать следующим образом:
<StackPanel>
<StackPanel.Resources>
<Path x:Key="Test1"/>
<Path x:Key="Test2"/>
</StackPanel.Resources>
<ToggleButton>
<ToggleButton.Style>
<Style TargetType="ToggleButton"
BasedOn="{StaticResource ToggleButtonStyle}">
<Setter Property="Content" Value="{StaticResource Test1}"/>
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Content"
Value="{StaticResource Test2}"/>
</Trigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
</ToggleButton>
</StackPanel>
BasedOn="{StaticResource ToggleButtonStyle}"
. Я обновил ответ с этим.