Animation Fehler nur im Designer

  • WPF

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Wulf.

    Animation Fehler nur im Designer

    Hallo, ich stehe im moment vor dem Problem das ich beim erstellen eines Templates für einen Slider fehler vom Designer angezeigt bekomme (aber nur vom Designer, zu Laufzeit funktioniert alles so wie gewollt).

    XML-Quellcode

    1. <VisualState x:Name="Disabled">
    2. <Storyboard>
    3. <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Shape.Stroke).(SolidColorBrush.Color)"
    4. Storyboard.TargetName="OuterEllipse">
    5. <EasingColorKeyFrame KeyTime="0"
    6. Value="{StaticResource TrackStrokeDisabled}" />
    7. </ColorAnimationUsingKeyFrames>
    8. <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Shape.Fill).
    9. (GradientBrush.GradientStops)[1].(GradientStop.Color)"
    10. Storyboard.TargetName="InnerEllipse">
    11. <EasingColorKeyFrame KeyTime="0"
    12. Value="{StaticResource TrackCenterFillDisabled}" />
    13. </ColorAnimationUsingKeyFrames>
    14. <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Shape.Fill).
    15. (GradientBrush.GradientStops)[0].(GradientStop.Color)"
    16. Storyboard.TargetName="OuterEllipse">
    17. <EasingColorKeyFrame KeyTime="0"
    18. Value="{StaticResource TrackFillDisabled}" />
    19. </ColorAnimationUsingKeyFrames>
    20. <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Shape.Fill).
    21. (GradientBrush.GradientStops)[1].(GradientStop.Color)"
    22. Storyboard.TargetName="OuterEllipse">
    23. <EasingColorKeyFrame KeyTime="0"
    24. Value="{StaticResource TrackFillDisabled}" />
    25. </ColorAnimationUsingKeyFrames>
    26. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Width"
    27. Storyboard.TargetName="InnerEllipse">
    28. <EasingDoubleKeyFrame KeyTime="0"
    29. Value="8"/>
    30. </DoubleAnimationUsingKeyFrames>
    31. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Height"
    32. Storyboard.TargetName="InnerEllipse">
    33. <EasingDoubleKeyFrame KeyTime="0"
    34. Value="8"/>
    35. </DoubleAnimationUsingKeyFrames>
    36. </Storyboard>
    37. </VisualState>


    1. Fehlermeldung:
    Das Animationsobjekt "System.Windows.Media.Animation.ColorAnimationUsingKeyFrames" kann nicht zum Animieren der Eigenschaft "Stroke" verwendet werden, da es sich um den nicht kompatiblen Typ "System.Windows.Media.Brush" handelt. (Bezieht sich auf die oberste Animation)

    2. Fehlermeldung:
    Von der [Unknown]-Eigenschaft wird nicht auf "DependencyObject" im Pfad "(0).(1)[1].(2)" verwiesen. (Bezieht sich auf alle anderen ColorAnimations)

    Die Fehler treten nur auf wenn das Control schon im Designer mit IsEnabled="False" initalisiert wird.

    Weis jemand woran das liegt das nur der Designer ein Problem damit hat?

    Im anhang befindet sich Die App.xaml in der das Template steht (Post währe sonst zu lang, müsst sie nurnoch in App.xaml umbenennen.)

    Grüße Wulf

    //Edit: Ich habe jetzt nochmal das beispiel von Microsoft ausprobiert (Link: MSDN) was zu dem Selben Fehler führt. Liegt es vielleicht an irgend einer Einstellung des Designer das es bei mir zu einer Ausnahme führt?
    Dateien
    • App.xml

      (13,16 kB, 250 mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Wulf“ ()

    Die Designer kannste würde ich nicht unbedingt als ausschlaggebend ansehen.
    Habe erst kürzlich in nem größeren Projekt mitgearbeitet wo der Designer oft ne Macke hatte. (jedoch der Code war vollkommen in Ordnung, denn war nen kommerzielles projekt mit fertig ausgebildeten Leuten)
    Meine Meinung ist einfach, dass der Designer in gewissen Situationen einfach aussteigt und man sich so oder so eher auf das XAML verlassen sollte als auf irgend nen gekrizel das der Designer zeichnet. Denn auch Templates, Styles,... werden oft nicht richtig dargestellt.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    ich hingegen bin der Ansicht, dass man Xaml so programmieren kann und sollte, dass der Designer das Zeug auch anzeigen kann.
    Der Designer
    • ist eine nützliche ungefähre Vorschau
    • ist eine Navigationshilfe im Xaml,
    • gibt Feedback, ob der Code Fehlerfrei ist
    • im PropertyFenster kann man Bindings einrichten und wird dabei von einer Art "Intellisense" unterstützt
    Deinen Fehler kannich leider nicht reproduzieren.
    Da muss ich dir wiedersprechen.
    Bei größeren GUI's steigt der Designer einfach aus.
    Für solche Dinge würd ich einfach Expression Blend nehmen wobei das wieder den Nachteil hat, dass dies bei Bindings recht schwach ist.
    Aber man nunmal nicht immer alles haben. Außerdem EDR wie stellst du dir das mit dem Designer bei Tabs, Ribbons usw. vor.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.

    thefiloe schrieb:

    Bei größeren GUI's steigt der Designer einfach aus.
    keine Ahnung - bei mir jdfs. bisher nicht.
    Also wenner aussteigt, fasse ich das als Programmierfehler auf, und bisher habichs auch immer wieder hingekriegt.

    thefiloe schrieb:

    einfach Expression Blend nehmen
    Nun jaaaa - das kost nu leider 'ne Kleinigkeit :(

    thefiloe schrieb:

    wobei das wieder den Nachteil hat, dass dies bei Bindings recht schwach ist.
    Was für mich das Kern-Thema von Wpf ist. Also wenn Expression nur hilfreich ist, schön bunt und wackelwackel dranzumachen (was die Tuts, die ich bisher gesehen habe, nahelegen), dann isses mir auch nicht so rasend wichtig, mit Blend zu arbeiten.

    thefiloe schrieb:

    Außerdem EDR wie stellst du dir das mit dem Designer bei Tabs, Ribbons usw. vor.
    ich weiß nicht, was du meinst - was ist mit Tabs, Ribbons usw?
    Tatsächlich binnichnich sonderlich wpf-erfahren. Meinst du mit Tabs das TabControl? also damit komm ich gut klar, aber mit Ribbons usw. kennichmich nicht aus.
    Das komische ist eben nur das das Beispiel von MSDN auch ohne jegliche veränderung auch diesen Fehler im Designer wirft. Und zur Laufzeit funktioniert es ja Problemlos.
    Des weiteren habe ich mich heute mal mit einem externen Programmierer der für uns Kundensortware entwickelt unterhalten, und er meint auch das der Designer von VS öffters aussteigt. Weshalb er meist die Basis-UI und die Bindings mit VS macht und das aussehen danach mit Expression Blend.

    Außerdem habe ich den Fehler jetzt so umgangen das ich auf VisualStateGroups verzichtet habe und es mit normalen Triggern gelößt habe. Ich musste dafür leider auf den Style für den Gedrückten zustand verzichten.