У меня есть ToggleButton с надписью. Когда он получает проверил изменения текста этикетки и становится длиннее, а FontSize становится все меньше:WPF ToggleButton with Checked + Pressed State
<Style x:Key="MyToggleButtonStyle" TargetType="{x:Type ToggleButton}">
<Setter Property="FontSize" Value="22" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Grid>
<Border Background="#FF0000"/>
<ContentPresenter x:Name="content"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="FontSize" Value="17" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<ToggleButton {StaticResource MyToggleButtonStyle}" Click="ToggleButton_Click">
<TextBlock x:Name="ToggleButtonLabel" Text="Some Text"/>
</ToggleButton>
private void ToggleButton_Click(object sender, RoutedEventArgs e) {
ToggleButtonLabel.Text = ((ToggleButton)sender).IsChecked == false ? "Some Text" : "Some Longer Text";
}
Кнопка также должна иметь прессованную состояние, в котором FontSize уменьшается относительно его текущего FontSize. Другими словами, он должен работать так:
Нормальный: Размер шрифта = 22
Прессованные: Размер шрифта = 20
Проверено: Размер шрифта = 17
Проверено + Пресса: Fontsize = 15
Я знаю Я могу легко использовать триггер для IsPressed государства, но это будет также изменить его Проверили + прессованный, который не то, что я хочу:
<Trigger Property="IsPressed" Value="True">
<Setter Property="FontSize" Value="20" />
</Trigger>
Так что это самый простой, чистый способ добавить четвертое визуальное состояние, чтобы объединить Проверено + нажато?
Perfect. благодаря – Karmacon