我有一个切换按钮,当切换按钮选中时,我想显示一个图像和一些文本
当未选中时,我要显示其他图像和其他文本。
这是我的Xaml:
<Window.Resources>
<Image Source="DeActiveButton.png"
x:Key="ImgDeactivate" />
<Image Source="ActiveButton.png"
x:Key="ImgActivate" />
<Style TargetType="{x:Type ToggleButton}"
x:Key="MyToggleButtonStyle">
<Setter Property="Content"
Value="{DynamicResource ImgDeactivate}" />
<Style.Triggers>
<Trigger Property="IsChecked"
Value="True">
<Setter Property="Content"
Value="{DynamicResource ImgActivate}" />
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid>
<ToggleButton x:Name="btnDeactivate"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Width="85"
Content="Deactivate"
Style="{DynamicResource MyToggleButtonStyle}">
</ToggleButton>
</Grid>
但是上面的xaml仅显示图像,我想随图像一起显示一些文本取决于切换按钮的状态如何完成此操作
最佳答案
像ContentControl
这样的ToggleButton
只能包含一个UIElement
作为其内容。但是,这个元素很容易成为容器控件,例如Grid
或StackPanel
。将容器控件设置为单个内容元素后,您可以随意添加任意数量的项。
如果在ControlTemplate
的ToggleButton
中定义这些控件,则可以在ControlTemplate.Triggers
部分中引用它们。尝试这样的事情:
<ToggleButton>
<ToggleButton.Style>
<Style TargetType="{x:Type ToggleButton}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<TextBlock Name="Text" Text="Here's some text" HorizontalAlignment="Center" />
<Image Name="Image" Grid.Row="1" Source="/AppName;component/Images/UncheckedImage.png" />
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter TargetName="Text" Property="Text" Value="Here's some different text" />
<Setter TargetName="Image" Property="Source" Value="/AppName;component/Images/CheckedImage.png" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ToggleButton.Style>
</ToggleButton>
关于wpf - wpf切换按钮: Display text along with image as content,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23338030/