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

相關問題