2010-12-16 110 views
3

我有一個wp7的應用程序欄中的一些按鈕。 當每個按鈕被按下時,我改變應用欄菜單的menuItems。 之後,我想在按下應用程序欄按鈕時自動打開菜單。以編程方式顯示應用程序欄菜單(wp7)

但似乎SDK不允許我這樣做。

你知道任何解決辦法嗎?

我一直在想,如果上述不可能,模擬用戶手指點擊屏幕的右下角打開菜單。有關於此的任何想法?

Thanx提前

回答

2

據我所知,這種功能尚未公開。在測試版中這是不可能的,我沒有注意到任何改變,因爲這將允許它。你可以隨時在他們的建議論壇發表評論,或在連接時提出(vs/wpdt)。

+0

+1就無法打開,用戶必須作出行動 – 2010-12-17 09:52:12

5

如下面代碼所示,可以更改應用程序欄菜單項以響應圖標按鈕單擊。

沒有辦法通過代碼強行打開(或關閉)應用程序欄。

也不可能模擬應用程序欄上的手指點擊,因爲這不是實際頁面的一部分。請注意,即使可能,如果設備處於橫向方向,任何點擊都需要位於右上角或左下角。

下面是一些代碼這表明改變菜單項:

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

這是真棒。正是我在找的! – webdad3 2010-12-24 17:25:55

相關問題