2010-12-16 10 views
3

Ich habe eine wp7 mit einigen Schaltflächen in der Anwendungsleiste. Wenn jede Taste gedrückt wird, ändere ich die Menüeinträge im Menü der Anwendungsleiste. Danach möchte ich das Menü automatisch öffnen, wenn eine Anwendungsleiste gedrückt wird.Anwendungsleiste Menü programmgesteuert anzeigen (wp7)

Aber es scheint, dass das SDK mir das nicht erlaubt.

Kennen Sie irgendwelche Arbeit herum?

Ich dachte, wenn das obige nicht möglich ist, einen Benutzer Fingerklick in der unteren rechten Ecke des Bildschirms zu simulieren, um das Menü zu öffnen. Irgendwelche Ideen dazu?

Thanx im Voraus

Antwort

2

Soweit ich bin mir bewusst, hat diese Fähigkeit noch nicht ausgesetzt worden ist. Es war während der Beta nicht möglich und ich habe nichts bemerkt, was sich geändert hat, da dies es erlauben würde. Du könntest immer das Forum ihrer Vorschläge kommentieren oder es auf connect (vs/wpdt) erhöhen.

+0

+1 es nicht möglich ist, zu öffnen, dass der Benutzer die Aktion machen muss –

5

Es ist möglich, die Menüelemente der Anwendungsleiste als Reaktion auf einen Klick auf die Symbolschaltfläche zu ändern, wie im folgenden Code gezeigt.

Es gibt keine Möglichkeit, die Anwendungsleiste durch Code zwangsweise zu öffnen (oder zu schließen).

Es ist auch nicht möglich, einen Fingerklick auf die Anwendungsleiste zu simulieren, da dies nicht Teil der eigentlichen Seite ist. Beachten Sie, dass selbst wenn möglich ein Klick oben rechts oder unten links erfolgen müsste, wenn das Gerät in Querformatausrichtung wäre.

Hier ist ein Code, der die Menüpunkte zu ändern demonstriert:

public partial class MainPage : PhoneApplicationPage 
{ 
    private ApplicationBar appbar; 
    public MainPage() 
    { 
     InitializeComponent(); 
     Loaded += new RoutedEventHandler(MainPage_Loaded); 
    } 

    void MainPage_Loaded(object sender, RoutedEventArgs e) 
    { 
     appbar = new ApplicationBar(); 

     var ib1 = new ApplicationBarIconButton(new Uri("/images/one.png", UriKind.Relative)) { Text = "Option one" }; 
     ib1.Click += new EventHandler(ShowMenuOption1); 

     var ib2 = new ApplicationBarIconButton(new Uri("/images/two.png", UriKind.Relative)) { Text = "Option two" }; 
     ib2.Click += new EventHandler(ShowMenuOption2); 

     appbar.Buttons.Add(ib1); 
     appbar.Buttons.Add(ib2); 

     // Show menu option 1 as default 
     DisplayMenuOption1(); 

     this.ApplicationBar = appbar; 
    } 

    private void DisplayMenuOption1() 
    { 
     appbar.MenuItems.Clear(); 

     var itemA = new ApplicationBarMenuItem("AAAA"); 
     var itemB = new ApplicationBarMenuItem("BBB"); 

     appbar.MenuItems.Add(itemA); 
     appbar.MenuItems.Add(itemB); 
    } 

    private void DisplayMenuOption2() 
    { 
     appbar.MenuItems.Clear(); 

     var itemC = new ApplicationBarMenuItem("CCCC"); 
     var itemD = new ApplicationBarMenuItem("DDDD"); 

     appbar.MenuItems.Add(itemC); 
     appbar.MenuItems.Add(itemD); 
    } 

    private void ShowMenuOption2(object sender, EventArgs e) 
    { 
     DisplayMenuOption2(); 
    } 

    private void ShowMenuOption1(object sender, EventArgs e) 
    { 
     DisplayMenuOption1(); 
    } 
} 
+0

Das ist genial. Genau wonach ich gesucht habe! – webdad3

Verwandte Themen