我被要求创建一个Radio
和CheckBox
变体在视觉上类似于一个按钮。
出现此问题:
单击该按钮时,它将更改为已选中状态,背景已更改,再次单击时,状态将更改为未选中状态,背景将变为原始画笔。
首先,我的策略是创建用户控件。但由于我的控制几乎等于一个按钮,所以对我使用继承是有意义的。
所以我的问题是
是否可以创建从按钮继承的用户控件?如果是这样,这是一个好方法吗?我该怎么办?
答案 0 :(得分:3)
一种可能的方法是使用ToggleButton
,但在IsChecked
成为true
时完全改变其外观:
<ToggleButton>
<ToggleButton.Style>
<Style TargetType="ToggleButton">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<!-- IsChecked == false template -->
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Trigger.Setters>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<!-- IsChecked == true template -->
</ControlTemplate>
</Setter.Value>
</Setter>
</Trigger.Setters>
</Trigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
</ToggleButton>
使用2个不同的模板(例如<TextBlock Text="On" />
和<TextBlock Text="Off" />
)来查看其工作原理。
答案 1 :(得分:1)
您可以使用WPF切换按钮。