4 Stimmen

VisualState-Vererbung in Silverlight

Ich schreibe ein Steuerelement, das von einer RadioButton und tut nichts Spektakuläreres, als ein Bild anzuzeigen und den Standardkreis auszublenden.

Eine Sache, die ich noch nicht herausfinden konnte, ist, ob ich die gesamte VisualStates wieder in meinem ControlTemplate, oder kann ich sie einfach als leeres Element einfügen und sie werden vererbt?

Meine XAML ist unten, die ursprüngliche RadioButton ist auf MSDN .

<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>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X