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