用户控件从WPF中的按钮继承

时间:2016-04-05 14:19:23

标签: c# .net wpf

我被要求创建一个RadioCheckBox变体在视觉上类似于一个按钮。

出现此问题:
单击该按钮时,它将更改为已选中状态,背景已更改,再次单击时,状态将更改为未选中状态,背景将变为原始画笔。

首先,我的策略是创建用户控件。但由于我的控制几乎等于一个按钮,所以对我使用继承是有意义的。

所以我的问题是
是否可以创建从按钮继承的用户控件?如果是这样,这是一个好方法吗?我该怎么办?

2 个答案:

答案 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切换按钮。