【问题标题】:How to implement facebook like menu (left menu) in windows store app如何在 Windows 商店应用程序中实现类似 facebook 的菜单(左侧菜单)
【发布时间】:2014-09-26 16:52:25
【问题描述】:

基本上,我希望能够创建一个菜单,单击某个按钮将从左侧(或右侧)出现,并且单击主屏幕上的任何位置时,用户都可以关闭该菜单。例如,facebook 应用在所有平台上都有类似的东西(在 Windows 8 上也是如此)。

我找到了适用于 Windows 手机 (http://sviluppomobile.blogspot.cz/2013/08/add-lateral-menus-to-windows-phone.html) 的解决方案,这不是适用于 Windows 8 的方法。也许我可以使用一些手工制作的动画进行飞越,默认情况下在视口之外。但是,我想肯定有更好的或经过验证的解决方案。

我在 SO 上也发现了两个问题,我猜想问的是同样的问题,但那里没有答案...... How to do: lateral menu like in "Music" app on Windows 8 / 8.1https://stackoverflow.com/questions/22613421/windows-8-1-apps-left-menu

我知道,这不是 windows 平台上实现菜单的最佳方式(我们有顶部应用栏,对),但我们的客户只是想要这个。

我想询问一些提示,或者最好是使用 XAML(C# 或 VB.NET)为 Windows 8.1 实现本机实现的代码。感谢所有愿意考虑的人。

【问题讨论】:

    标签: xaml windows-8 windows-runtime windows-store-apps winrt-xaml


    【解决方案1】:

    您可以将StackPanelOrientation="Horizontal" 放在ScrollViewer 中。在StackPanel 中放置三个面板——让我们将它们设为Grids 并称它们为:left、middle 和 right。在ScrollViewerSizeChanged 事件上 - 将中间网格的WidthHeight 设置为与ScrollViewerActualWidthActualHeight 相同的值,并且可能将左右网格设置为当您滚动到末端时,请稍窄一点,以便留出空间以查看中间面板的一点点。通过设置Horizontal/VerticalScrollMode 和滚动条可见性使ScrollViewer 水平滚动,并通过设置HorizontalSnapPointsTypeHorizontalSnapPointsAlignment 属性使ScrollViewer 与网格面板对齐。如果您的面板中有任何垂直的ScrollViewers 并设置它们的IsVerticalRailEnabled="true",那么也将水平ScrollViewer 上的IsHorizontalRailEnabled 设置为true,因此只有其中一个会根据操作方向滚动。最后 - 放置一个透明覆盖面板作为中间面板的顶部子面板处理覆盖上的点击事件以在中间面板未居中时将中间面板滚动回视图并且在菜单按钮的处理程序中滚动水平ScrollViewer到开始/结束。

    【讨论】:

    • 谢谢菲利普。您的解决方案似乎很有趣,我将尝试最有可能使用它。您是否已经在某个地方使用过它?还是仅仅是一个概念?
    • 我玩过它,我打算创建一个使用这些概念的通用菜单控件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-28
    • 1970-01-01
    • 2012-01-15
    • 2013-02-26
    • 1970-01-01
    • 2022-11-22
    • 1970-01-01
    相关资源
    最近更新 更多