Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Silverlight中的VisualState继承_Silverlight_Visualstatemanager - Fatal编程技术网

Silverlight中的VisualState继承

Silverlight中的VisualState继承,silverlight,visualstatemanager,Silverlight,Visualstatemanager,我正在编写一个控件,它继承了一个单选按钮,除了显示一个图像和隐藏默认的圆圈之外,它没有做任何更引人注目的事情 有一件事我还没有弄清楚,那就是我是否必须在我的ControlTemplate中重新实现所有的VisualStates,或者我可以简单地将它们作为一个空元素,并将它们继承下来 我的XAML在下面 您没有重新实现可视状态,但它们也不会被“继承”。如果为新控件指定一个新的DefaultStyleKey,则原始样式将一无所获 如果希望新控件修改其外观以表示其当前状态,例如它是否具有焦点或它是否处

我正在编写一个控件,它继承了一个
单选按钮
,除了显示一个图像和隐藏默认的圆圈之外,它没有做任何更引人注目的事情

有一件事我还没有弄清楚,那就是我是否必须在我的ControlTemplate中重新实现所有的
VisualStates
,或者我可以简单地将它们作为一个空元素,并将它们继承下来

我的XAML在下面


您没有重新实现可视状态,但它们也不会被“继承”。如果为新控件指定一个新的
DefaultStyleKey
,则原始样式将一无所获


如果希望新控件修改其外观以表示其当前状态,例如它是否具有焦点或它是否处于选中状态,则需要在相应的
VisualStateGroups
集合中包含一个选项。然后在
VisualState
元素中包含相应的动画,以更改按钮UI的新版本。

要么全有,要么全无。如果替换模板,则必须提供所有模板,包括视觉状态。Blend可以轻松编辑默认模板的副本。

是否有任何点包括
等空元素?
<Style TargetType="local:ImageRadioButton">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="local:ImageRadioButton">
                <Grid>
                    <vsm:VisualStateManager.VisualStateGroups>
                        <vsm:VisualStateGroup x:Name="CommonStates">
                            <vsm:VisualState x:Name="Normal"/>
                            <vsm:VisualState x:Name="MouseOver">
                                <Storyboard/> <!-- mouseover -->
                            </vsm:VisualState>
                            <vsm:VisualState x:Name="Pressed" />
                            <vsm:VisualState x:Name="Disabled"/>
                            <!-- TODO -->
                        </vsm:VisualStateGroup>
                        <vsm:VisualStateGroup x:Name="CheckStates">
                            <vsm:VisualState x:Name="Checked">
                                <Storyboard/>
                                <!-- checked -->
                            </vsm:VisualState>
                            <vsm:VisualState x:Name="Unchecked"/>
                        </vsm:VisualStateGroup>

                        <vsm:VisualStateGroup x:Name="FocusStates">
                            <vsm:VisualState x:Name="Focused" />
                            <vsm:VisualState x:Name="Unfocused" />
                        </vsm:VisualStateGroup>
                        <vsm:VisualStateGroup x:Name="ValidationStates">
                            <vsm:VisualState x:Name="Valid"/>
                            <vsm:VisualState x:Name="InvalidUnfocused" />
                            <vsm:VisualState x:Name="InvalidFocused" />
                        </vsm:VisualStateGroup>
                    </vsm:VisualStateManager.VisualStateGroups>

                    <ContentPresenter/>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>