2017-01-10 10 views
5

Ich gestalte eine ComboBox in meiner UWP App und ich versuche eine Lösung für die fehlenden Dropdown-Animationen im Steuerelement zu finden.UWP ComboBox hat keine Open/Close Animationen mehr (Build 14393)

Sieht so aus, als ob die Open/Close-Animationen mit dem Anniversary Update entfernt wurden, ich meine, sie werden immer noch in der App "Einstellungen" abgespielt, aber ich sehe sie nicht mehr in meiner eigenen App, im Rechner oder anderen andere UWP App für Windows kompiliert 10 14393.

Dies ist, was ich in der ComboBox Vorlage siehe:

<VisualStateGroup x:Name="DropDownStates"> 
    <VisualState x:Name="Opened"> 
    <Storyboard> 
     <SplitOpenThemeAnimation OpenedTargetName="PopupBorder" 
           ClosedTargetName="ContentPresenter" 
           OffsetFromCenter="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.DropDownOffset}" 
           OpenedLength="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.DropDownOpenedHeight}"/> 
    </Storyboard> 
    </VisualState> 
    <VisualState x:Name="Closed"> 
    <Storyboard> 
     <SplitCloseThemeAnimation OpenedTargetName="PopupBorder" 
           ClosedTargetName="ContentPresenter" 
           OffsetFromCenter="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.DropDownOffset}" 
           OpenedLength="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.DropDownOpenedHeight}"/> 
    </Storyboard> 
    </VisualState> 
</VisualStateGroup> 

Diese SplitOpenThemeAnimation Animationen sind nicht wirklich Animationen, da sie wie ein Setter verhalten, ihre Wirkung ist unmittelbar und nicht überhaupt belebt.

Ich frage mich, ob es eine einfache Möglichkeit gibt, die vorherigen Animationen wiederherzustellen (vielleicht fehlt mir einfach eine einfache Option/Parameter zum Hinzufügen in XAML?), Ohne manuell mit der Vorlage zu verwirren und meinen eigenen Clip zu schreiben/transformiere Animationen, was ich hier lieber nicht machen würde, da MS die Vorlage in einem zukünftigen Build noch einmal ändern würde, hätte ich alles umsonst gemacht.

Irgendwelche Vorschläge hier? Vielen Dank!

EDIT: Für den Moment hier ist die Problemumgehung, die ich benutze, aber ich möchte etwas, das die Folie/Clipping-Animation wie die ursprüngliche Animation hat.

<VisualState x:Name="Opened"> 
    <Storyboard> 
    <DoubleAnimation Storyboard.TargetName="Popup" 
        Storyboard.TargetProperty="Opacity" 
        From="0" 
        To="1" 
        Duration="0:0:0.2"> 
    <DoubleAnimation.EasingFunction> 
     <CircleEase EasingMode="EaseOut"/> 
    </DoubleAnimation.EasingFunction> 
    </DoubleAnimation> 
    <DoubleAnimation Storyboard.TargetName="PopupTransform" 
        Storyboard.TargetProperty="(TranslateTransform.Y)" 
        From="-20" 
        To="0" 
        Duration="0:0:0.2"> 
    <DoubleAnimation.EasingFunction> 
     <CircleEase EasingMode="EaseOut"/> 
    </DoubleAnimation.EasingFunction> 
    </DoubleAnimation> 
    <!--Original SplitOpenAnimation here--> 
</Storyboard> 

Antwort

0

Dieser Fehler tritt in der Regel auf Entwickler-Maschinen, die deaktiviert Animationen auf Systemebene haben. Die integrierten Animationen folgen dieser Systemeinstellung. Du könntest das nochmal überprüfen.

enter image description here

+0

Hallo Jerry, leider das ist nicht das Problem (diese Option ist für mich). Wie ich bereits erwähnt habe, sehe ich das gleiche Verhalten sowohl in meiner App als auch in anderen Drittanbieter-Apps und System-Apps (wie zum Beispiel im Taschenrechner oder sogar in der App "Einstellungen"). Es ist die Vorlage der ComboBox selbst, die mit dem Anniversary Update geändert wurde (siehe die generic.xaml Datei für den Build 14393). Ich weiß ehrlich gesagt nicht, warum das UI-Team diese Entscheidung getroffen hat und ich habe mich nur gefragt, ob es einen besseren Weg gibt, das zu ändern. Natürlich wären integrierte Animationen besser, als sie manuell neu zu implementieren, so wie ich es jetzt tue. Vielen Dank! – Sergio0694

Verwandte Themen