2013-04-13 14 views
6

Jestem nowy w Windows Phone 7 rozwoju próbuje stworzyć menu bocznego paska jak FacebookWindows Phone utworzyć menu bocznego paska jak Facebook

mam utworzyć jeden usercontrol i umieścić kilka przycisków dla różnych ekranów a także skrzyni PhoneApplicationPage i umieścić przycisk, że kiedy kliknę na ten przycisk, spróbuj wejść z prawego górnego rogu, jak menubar.

pokaz w prawym boku, a jeśli jeszcze raz kliknąć ten przycisk w prawym górnym rogu to chcesz ukryć jeśli ktoś ma pomysł na temat tego kodu należy udostępnić lub przykładów

dzięki.

Odpowiedz

0

Cóż, nie jest to łatwy sposób na zrobienie tego jak iOS. Ale możesz użyć Visual State Manager.

Zasadniczo, Kształt większego ekranu niż na scenie. Następnie musisz stworzyć stan, który przesunie ekran nieco na scenie i możesz użyć przycisku. Musisz zadzwonić do stanu za pomocą przycisku na kliknięciu.

PS: Nie używaj scenorysów. Używaj państw, jest to najłatwiejszy sposób na zrobienie tego.

9

Właśnie blogowałem kompletne rozwiązanie do tego ... i rzeczywiście potrzebujesz Visual States! http://depblog.weblogs.us/2013/07/22/facebook-like-settings-pane-windows-phone/

+2

Należy zauważyć, że odradza się udzielanie jedynie linków, odpowiedzi SO powinny być punktem końcowym wyszukiwania rozwiązania (w porównaniu z innym punktem odniesienia, który z czasem ulega starzeniu). Proszę rozważyć dodanie samodzielnego streszczenia tutaj, zachowując odnośnik jako odniesienie. – kleopatra

+1

kleopatra ... prawda, ale całkowite rozwiązanie jest duże w odpowiedzi w StackO.Ogółem pomysł został już podany przez stwierdzenie użycia Visual Status Manager, wskazuję tylko na działający do pobrania projekt. – Depechie

+0

@Depechie Dobrze jest zamieścić link do kompletnego rozwiązania na swoim blogu, ale przynajmniej zamieścić tutaj wystarczającą ilość informacji, aby nawet jeśli twój blog zniknie jutro, nadal będzie to przydatna odpowiedź. –

1

Wyjazd SlideView, opisany jako "... nawigacyjnym szuflady inspirowane przez urzędowego Facebooku aplikacji na Windows Phone." https://slideview.codeplex.com/

Edit Po zainstalowaniu SlideView przez Nuget ZAINSTALUJ-package SlideView

Tworzenie UserControl które będą reprezentować SlideView chcesz, powiedzmy LeftView.xaml. Można utworzyć kolejną kontrolę użytkownika dla drugiej strony, powiedzmy RightView.xaml

Następnie w pliku App.xaml zdefiniować SlideView jako zasób,

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> 

Gdy to zrobisz zmieniać swoich App.xaml.cs aby zmienić domyślny RootFrame i th 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(); 
    } 
} 

To powinno działać .. Wystarczy dodać zawartość do Rightview.xaml i LeftView.xaml. Z jakiegoś powodu mój WindowsPhone 8.1 xaml się zawiesił po uruchomieniu. Ale wszystko działało, gdy korzystałem z Widoku slajdów SlideView, który jest dostępny jako pakiet nuget tutaj

Install-Package SlideView.Library.WP81.Zumicts 

Czy ktoś doświadczył tego samego problemu?