所有切换按钮的单一样式但具有不同的静态内容
Single Style for All Toggle Buttons but with Different Static Content
静态资源样式
<Style TargetType="{x:Type ToggleButton}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ToggleButton">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="1" Background="{TemplateBinding Background}">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Background" Value="Red"></Setter>
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Background" Value="Green" />
</Trigger>
</Style.Triggers>
</Style>
切换按钮代码
<ToggleButton Grid.Row="3" Grid.Column="1" ToolTip="Toggle to Show and Hide Date" IsChecked="True" Cursor="Hand">
<ToggleButton.Style>
<Style TargetType="{StaticResource ToggleButton}">
<Setter Property="Content" Value="No Date" />
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Content" Value="Date" />
</Trigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
</ToggleButton>
但是我无法将内容获取错误设置为Content is not recognized or inaccessible.
我不是 WPF 的常客。
谢谢
在您的切换按钮代码中,更改
<Style TargetType="{StaticResource ToggleButton}">
至
<Style TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource {x:Type ToggleButton}}">
您可以为控件全局定义一个样式,该样式 is/may 适用于该类型的所有控件,但是当您必须为单个控件提供一些额外的样式时,您可以通过在控制该样式并将其基于全局样式。
这个 basedOn 可以在样式 x:Type 上完成(如我的回答),或者如果你想以特定样式为基础,也可以基于 x:Name。
静态资源样式
<Style TargetType="{x:Type ToggleButton}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ToggleButton">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="1" Background="{TemplateBinding Background}">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Background" Value="Red"></Setter>
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Background" Value="Green" />
</Trigger>
</Style.Triggers>
</Style>
切换按钮代码
<ToggleButton Grid.Row="3" Grid.Column="1" ToolTip="Toggle to Show and Hide Date" IsChecked="True" Cursor="Hand">
<ToggleButton.Style>
<Style TargetType="{StaticResource ToggleButton}">
<Setter Property="Content" Value="No Date" />
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Content" Value="Date" />
</Trigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
</ToggleButton>
但是我无法将内容获取错误设置为Content is not recognized or inaccessible.
我不是 WPF 的常客。
谢谢
在您的切换按钮代码中,更改
<Style TargetType="{StaticResource ToggleButton}">
至
<Style TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource {x:Type ToggleButton}}">
您可以为控件全局定义一个样式,该样式 is/may 适用于该类型的所有控件,但是当您必须为单个控件提供一些额外的样式时,您可以通过在控制该样式并将其基于全局样式。
这个 basedOn 可以在样式 x:Type 上完成(如我的回答),或者如果你想以特定样式为基础,也可以基于 x:Name。