全屏 WPF 程序中的 Metro 风格 Appbar

Posted

技术标签:

【中文标题】全屏 WPF 程序中的 Metro 风格 Appbar【英文标题】:Metro-style Appbar in fullscreen WPF program 【发布时间】:2013-04-07 15:37:17 【问题描述】:

我目前正在开发一个桌面 C# WPF 应用程序,目标是让它看起来和感觉像 "real" Windows Store 应用程序。

我想添加一个appbar,当用户从底部向上滑动时应该显示它。要在普通应用程序中执行此操作,您只需将手指放在屏幕区域之外,然后向上滑动即可。 但是,如果我在全屏 WPF 程序中这样做,我不会收到任何 TouchDownTouchMove 事件 - 可能是因为在进入实际屏幕区域时手指已经向下。 我也尝试过使用 Manipulation 框架,但结果相同。即使我使用WndProc 或其他挂钩直接挂钩到消息队列,我也根本没有收到任何事件。

有趣的是,我可以看到"touch cursor" 在屏幕上移动,所以至少底层框架中的一些东西被通知了。

有人知道怎么做吗?

附言由于硬件连接问题,我不能只使用 Windows 商店应用程序;-)

【问题讨论】:

您不太可能在桌面 WPF 应用程序中复制 Windows 应用商店应用程序的行为。究竟什么是硬件连接问题? 我认为他指的是由于必须从某种集中式应用商店获取窗口商店应用程序而产生的安装问题。最终,企业将能够使用 Win 8 Enterprise 进行侧载,但我认为该功能尚不可用。 @RitchMelton 有一段时间确实如此。我想你现在可以了。 howtogeek.com/129535/how-to-sideload-modern-apps-on-windows-8 @mydogisbox - 这是一个开发者的侧载。不同于为用户安装。 @RitchMelton 你没有向下滚动足够远。有一个标题为“在域上”的部分,详细说明了如何为“业务线”应用程序旁加载应用程序。 【参考方案1】:

您将需要跟踪光标位置坐标,并查看光标(滑动)何时从屏幕边缘开始并移入。当触发时(使用您想要的任何触发器,最有可能覆盖的距离)您可以启动您的 Appbar。

在 MSDN 上有一个类似的问题: https://social.msdn.microsoft.com/Forums/vstudio/en-US/d85dcde7-839a-44d3-9f2a-8b47b947576c/swipe-gesture-and-page-change?forum=wpf

【讨论】:

以上是关于全屏 WPF 程序中的 Metro 风格 Appbar的主要内容,如果未能解决你的问题,请参考以下文章

wpf metro风格,怎么自定义gridview的scrollbar,就是想美化一下

如何在我的“Metro Style”应用程序中的 WPF 中进行拖放?

WPF 使用MahApps.Metro UI库

WPF 皮肤之MathApps.Metro UI库

CSS Windows 8 Metro 风格应用程序中的 fr 单位是啥意思?

C# WPF开源控件库:MahApps.Metro