2010-12-16 5 views
3

私はアプリケーションバーにいくつかのボタンがあるwp7を持っています。 各ボタンを押すと、アプリケーションバーのメニューのメニュー項目を変更します。 その後、アプリケーションバーボタンが押されたときに自動的にメニューを開きたいと思います。アプリケーションバーのメニューをプログラムで表示する(wp7)

しかし、SDKは私にそれを許可していないようです。

回避策はありますか?

私は考えていましたが、上記のことができない場合、ユーザーの指をシミュレートするには、画面の右下にあるをクリックしてメニューを開きます。その上の任意のアイデア?

前もって太もも

答えて

2

私の知る限り、この機能はまだ公開されていません。それはベータ中には不可能でしたし、それが許されてから変更されたことに気付かなかったのです。あなたはいつも彼らの提案フォーラムにコメントしたり、connect(vs/wpdt)でそれを呼び出すことができます。

+0

+1ユーザーが素晴らしいですアクション –

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

関連する問題