2013-04-13 74 views
6

側菜單欄我在Windows Phone 7的發展是新嘗試創建像Facebook的Windows Phone創建像Facebook

我已創建一個用戶控件,並把一些按鈕,用於不同屏幕 也箱的PhoneApplicationPage,把側菜單欄按鈕,當我點擊那個按鈕時,試着從菜單欄的右上角來。

顯示在右邊,如果再點擊右上角的按鈕,它想隱藏 如果任何一個有關於請共享代碼或例子

謝謝你的想法。

回答

0

那麼有沒有一種簡單的方法來做到像iOS一樣。但是你可以使用Visual State Manager

基本上,形成一個比你的舞臺更大的屏幕。然後,您需要創建一個狀態,將您的屏幕稍稍移動到舞臺上,然後您可以使用按鈕。你需要在按鈕的點擊方法上調用狀態。 PS:不要使用情節串連圖板。使用狀態是最簡單的方法。

9

我剛剛爲此寫了一個完整的解決方案......並且確實需要視覺狀態! http://depblog.weblogs.us/2013/07/22/facebook-like-settings-pane-windows-phone/

+2

請注意,只有鏈接的答案是不鼓勵的,所以答案應該是搜索解決方案的終點(而另一個引用的中途停留時間往往會過時)。請考慮在此添加獨立的摘要,並將鏈接保留爲參考。 – kleopatra

+1

kleopatra ...是真的,但總體的解決方案是在StackO中作爲響應。總的來說,這個想法已經通過聲明使用Visual State Manager來給出,我只是指向一個可以下載的工程。 – Depechie

+0

@Depechie鏈接到博客上的完整解決方案很好,但至少在這裏包含足夠的信息,以便即使您的博客明天消失,它仍然是一個有用的答案。 –

1

退房SlideView,描述爲 「通過在Windows Phone官方的Facebook應用程序的啓發......導航抽屜裏。」 https://slideview.codeplex.com/

編輯 一旦你已經通過的NuGet的安裝包SlideView

創建一個用戶控件,將代表你想要的SlideView安裝SlideView,說LeftView.xaml。您可以創建另一側的另一用戶控件,在你App.xaml文件說RightView.xaml

然後,定義SlideView作爲一種資源,

xmlns:slideView="using:SlideView.Library" 
xmlns:views="using:SideNav.Views" 
xmlns:local="using:SideNav"> 

<Application.Resources> 
    <slideView:SlideApplicationFrame Header="SlideView" Background="White" x:Key="RootFrame" > 
     <slideView:SlideApplicationFrame.LeftContent> 
      <views:LeftView/> 
     </slideView:SlideApplicationFrame.LeftContent> 
     <slideView:SlideApplicationFrame.RightContent> 
      <views:RightView/> 
     </slideView:SlideApplicationFrame.RightContent> 
    </slideView:SlideApplicationFrame> 
</Application.Resources> 

一旦完成編輯您的App.xaml.cs更改默認RootFrame和日OnLaunchedMethod

public sealed partial class App : Application 
{ 
    private TransitionCollection transitions; 

    public static SlideApplicationFrame RootFrame { get; private set; } 

    protected override void OnLaunched(LaunchActivatedEventArgs e) 
    { 

     RootFrame = Window.Current.Content as SlideApplicationFrame; 

     // Do not repeat app initialization when the Window already has content, 
     // just ensure that the window is active 
     if (RootFrame == null) 
     { 
      // Create a Frame to act as the navigation context and navigate to the first page 
      RootFrame = this.Resources["RootFrame"] as SlideApplicationFrame; 

      // TODO: change this value to a cache size that is appropriate for your application 
      RootFrame.CacheSize = 1; 

      // Set the default language 
      RootFrame.Language = Windows.Globalization.ApplicationLanguages.Languages[0]; 

      if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) 
      { 
       // TODO: Load state from previously suspended application 
      } 

      // Place the frame in the current Window 
      Window.Current.Content = RootFrame; 
     } 

     if (RootFrame.Content == null) 
     { 
      // Removes the turnstile navigation for startup. 
      if (RootFrame.ContentTransitions != null) 
      { 
       this.transitions = new TransitionCollection(); 
       foreach (var c in RootFrame.ContentTransitions) 
       { 
        this.transitions.Add(c); 
       } 
      } 

      RootFrame.ContentTransitions = null; 
      RootFrame.Navigated += this.RootFrame_FirstNavigated; 

      // When the navigation stack isn't restored navigate to the first page, 
      // configuring the new page by passing required information as a navigation 
      // parameter 
      if (!RootFrame.Navigate(typeof(MainPage), e.Arguments)) 
      { 
       throw new Exception("Failed to create initial page"); 
      } 
     } 

     // Ensure the current window is active 
     Window.Current.Activate(); 
    } 
} 

這應該工作..只要將內容添加到Rightview.xaml和LeftView.xaml。 由於某些原因,我的WindowsPhone 8.1 xaml在啓動時崩潰了。但是,一切都工作時,我使用的SlideView的Zumicts叉是可以作爲這裏NuGet包

Install-Package SlideView.Library.WP81.Zumicts 

任何人都經歷了同樣的問題?