0

基本上,我希望能够创建一个菜单,点击某个按钮后会从左侧(或右侧)出现,并在主屏幕上的任意位置点击用户将能够解开菜单。例如,facebook应用在所有平台上都有类似的东西(所以在Windows 8上也是如此)。如何在windows store应用程序中实现facebook菜单(左侧菜单)

我找到了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平台上的最佳方式实现菜单(我们有顶级的应用程序栏,右),但我们的客户只是想要这个。

我想问一些提示或理想的代码为Windows 8.1本机实现使用XAML(C#或VB.NET)。感谢大家会给予一个想法。

回答

1

你会把StackPanelOrientation="Horizontal"ScrollViewer。把三个面板放在StackPanel - 让我们让他们Grids并称他们:左,中,右。在ScrollViewerSizeChanged事件 - 设置ScrollViewerWidth和中间网格值相同ActualWidthHeightActualHeight也许设置左,右网格是有点窄,以留出空间看到的一点点当您滚动到结束时,中间面板。通过设置Horizontal/VerticalScrollMode和滚动条可见性,使ScrollViewer水平滚动,并通过设置HorizontalSnapPointsTypeHorizontalSnapPointsAlignment属性使ScrollViewer捕捉到网格面板。如果您的面板中有任何垂直ScrollViewers,并将它们设置为IsVerticalRailEnabled="true",则还可以将IsHorizontalRailEnabled设置为水平ScrollViewer,以便根据操作方向的不同仅滚动其中一个。最后 - 将一个透明的覆盖面板作为中间面板的顶部孩子处理覆盖层上的轻触事件,以便当中间面板不居中并且在菜单按钮的处理程序中滚动水平ScrollViewer到中间面板开始/结束。

+0

谢谢菲利普。你的解决方案看起来很有趣,我会尽量使用它。你有没有用过它?还是仅仅是一个概念? – 2014-09-27 14:09:17

+0

我玩过它,我打算创建一个将使用这些概念的通用菜单控件。 – 2014-09-27 16:52:28

相关问题