Entwickler-Ecke

WPF / Silverlight - Viusal States mit C# aufrufen


ebber - So 27.03.11 00:07
Titel: Viusal States mit C# aufrufen
Hallo,

ich habe versucht meinem selbstgemachten Control ein paar Visual States zu verpassen:


XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
<VisualStateManager.VisualStateGroups>
      <VisualStateGroup x:Name="VisStateGrp">
        <VisualState x:Name="Grey">
          <Storyboard>
            <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Shape.Stroke).(GradientBrush.GradientStops)[1].(GradientStop.Color)" Storyboard.TargetName="ellipse">
              <EasingColorKeyFrame KeyTime="0" Value="#3FE7E7E7"/>
            </ColorAnimationUsingKeyFrames>
          </Storyboard>
        </VisualState>
      </VisualStateGroup>
</VisualStateManager.VisualStateGroups>


Wie ich des öfteren gelesen habe sollte man das dann einfach so aufrufen können:

C#-Quelltext
1:
VisualStateManager.GoToElementState(mycontrol1, "Grey"false);                    


Leider passiert da nichts. Ich habe noch gelesen man soll das noch in die Klasse hinzufügen:

C#-Quelltext
1:
2:
3:
4:
[TemplateVisualState(Name = "Grey", GroupName = "VisStateGrp")]
public partial class mycontrol: UserControl

      .......


Hat aber leider auch nichts gebracht. Hat jemand eine Idee wo das Problem liegen könnte?


MfG


ebber - Fr 01.04.11 20:39

Ich glaube ich hab den Fehler gefunden:


Quelltext
1:
2:
Call the GoToElementState method to change states on an element outside of a ControlTemplate (for example, if you use a VisualStateManager in a DataTemplate or Window). 
Rufen Sie die GoToState-Methode auf, wenn Sie Zustände in einem Steuerelement ändern, das den VisualStateManager in seiner ControlTemplate verwendet.

(msdn)

MfG