2017-01-10 62 views
5

我在我的UWP應用程序中設計了一個ComboBox,我試圖想出一個控件中缺少下拉動畫的解決方案。UWP組合框不再有打開/關閉動畫(構建14393)

看起來開放/關閉動畫已被刪除與週年紀念更新,我的意思是,他們仍然在設置應用程序出於某種原因,但我不再看到他們在我自己的應用程序,計算器或任何編譯爲Windows 10 14393.

這等UWP應用程序是什麼,我在ComboBox模板看到:

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

那些SplitOpenThemeAnimation動畫並不是真正的動畫,因爲他們表現得像一個二傳手,其效果是立竿見影的,而不是動畫。

我想知道是否有一個簡單的方法來恢復以前的動畫(也許我只是缺少一個簡單的選項/參數添加到XAML?),而不必手動混淆模板並寫我自己的剪輯/轉換動畫,這是我不希望在這裏做的事情,因爲如果MS在未來的版本中再次更改模板,我會完全沒有辦法。

此處有任何建議嗎?謝謝!

編輯︰目前這裏是我使用的解決方法,但我想有東西,保持幻燈片/剪切動畫做原始動畫。

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

回答

0

這個錯誤通常發生在那些對系統級禁用動畫開發的機器。內置的動畫服從這個系統設置。你可以仔細檢查。

enter image description here

+0

您好傑裏,不幸的是,這不是問題(該選項是對我來說)。正如我所說的,我在我的應用程序,其他第三方應用程序和系統應用程序(例如計算器,甚至設置應用程序)中看到了相同的行爲。這是ComboBox本身的模板,隨週年更新而更改(檢查構建14393的generic.xaml文件)。我真的不知道爲什麼UI團隊做出了這個選擇,我只是想知道是否有更好的方法來恢復。當然,內置動畫會比不用像現在這樣手動重新實現它們。謝謝! – Sergio0694