xaml – 如何在关闭时为SettingsFlyout设置动画
发布时间:2020-12-13 21:24:33 所属栏目:Windows 来源:网络整理
导读:在 Windows 8.1中,我使用的是新的SettingsFlyout控件.弹出窗口正确设置动画,如果您使用控件的内置后退按钮返回“设置超级按钮”弹出按钮,则会生成动画.但是如果你通过在弹出窗口外面点击来点亮它,它就会在没有过渡动画的情况下消失. 当你点亮SettingsFlyout
在
Windows 8.1中,我使用的是新的SettingsFlyout控件.弹出窗口正确设置动画,如果您使用控件的内置后退按钮返回“设置超级按钮”弹出按钮,则会生成动画.但是如果你通过在弹出窗口外面点击来点亮它,它就会在没有过渡动画的情况下消失.
当你点亮SettingsFlyout时,你如何为转换设置动画? (我不想返回设置魅力弹出窗口,我只是希望它在光线消失时滑出.)
Matt,您想要做的事情应该很容易实现,但目前XAML SettingsFlyout API不支持开箱即用.正如Jerry指出的那样,有些过渡允许动画效果(在XAML中你想要
EdgeUIThemeTransition).遗憾的是,在SettingsFlyout上没有API支持来添加此转换,但您可以使用自己的私有弹出窗口来托管SettingsFlyout(下面有更多内容):
public sealed partial class SettingsFlyout1 : SettingsFlyout { Popup _p; Border _b; public SettingsFlyout1() { this.InitializeComponent(); BackClick += SettingsFlyout1_BackClick; Unloaded += SettingsFlyout1_Unloaded; Tapped += SettingsFlyout1_Tapped; } void SettingsFlyout1_BackClick(object sender,BackClickEventArgs e) { _b.Child = null; SettingsPane.Show(); } void SettingsFlyout1_Unloaded(object sender,RoutedEventArgs e) { if (_p != null) { _p.IsOpen = false; } } void SettingsFlyout1_Tapped(object sender,TappedRoutedEventArgs e) { e.Handled = true; } public void ShowCustom() { _p = new Popup(); _b = new Border(); _b.ChildTransitions = new TransitionCollection(); // TODO: if you support right-to-left builds,make sure to test all combinations of RTL operating // system build (charms on left) and RTL flow direction for XAML app. EdgeTransitionLocation.Left // may need to be used for RTL (and HorizontalAlignment.Left on the SettingsFlyout below). _b.ChildTransitions.Add(new EdgeUIThemeTransition() { Edge = EdgeTransitionLocation.Right }); _b.Background = new SolidColorBrush(Colors.Transparent); _b.Width = Window.Current.Bounds.Width; _b.Height = Window.Current.Bounds.Height; _b.Tapped += b_Tapped; this.HorizontalAlignment = HorizontalAlignment.Right; _b.Child = this; _p.Child = _b; _p.IsOpen = true; } void b_Tapped(object sender,TappedRoutedEventArgs e) { Border b = (Border)sender; b.Child = null; } } 该样本的完整解决方案:https://github.com/finnigantime/Samples/tree/master/examples/Win8Xaml/SettingsFlyout_AnimateOut 我认为SettingsFlyout应该为您的场景提供API支持,因此我在XAML团队中提交了一个工作项.将来,这些请求/问题也可以在MSDN论坛上提出(由MSFT人员主持).这里的限制是在Popup上使用IsLightDismissEnabled =“True”实现了SettingsFlyout,而light-dismiss事件当前立即关闭Popup而不允许卸载子转换运行.我认为这可以克服,并且可以在SettingsFlyout API级别支持转换以启用您的方案. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- active-directory – 在Airgapped时从域中删除Windows Serv
- windows-server-2003 – 打开certmgr.msc以显示计算机级别证
- windbg – 如何从DLL堆标记中受益?
- uint32_t和int作为日常编程的惯例
- windows – Combobox更改高亮颜色winRT(metro应用程序)
- windows – 在HtmlHelp中禁用“打印”按钮
- 编程语言 – 我应该将哪个开发平台用于桌面Windows应用程序
- powershell – 如何在交换混合环境中备份/导出office 365电
- windows-7 – 如何使端口80可用?在Windows 7上安装xampp 1
- Appcelerator钛,我该如何创建模态窗口?
推荐文章
站长推荐
- windows-server-2008-r2 – 确定在Windows 2008
- windows-server-2003 – 无法授权DHCP服务器
- windows-runtime – Window 10上的WinRTXAMLTool
- 组策略 – 管理模板(ADMX文件)如何工作?
- windows-mobile – 在WinMobile手机中访问GPS功能
- windows phone-8 – Windows Phone 8.1模拟器没有
- 在全新安装Windows时应该更改哪些注册表项?
- windows – 远程控制git存储库
- windows-server-2008 – 我应该在Windows 2008服
- Windows 10中的内存泄漏Delphi Seattle中的TNoti
热点阅读