2010-12-16 95 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

相关问题