如何正确处理Windows Phone 7中应用程序栏的更改模式

时间:2014-02-14 14:38:45

标签: c# windows-phone-7 event-handling application-bar

我需要在应用程序栏最小化时处理事件,但我的代码显然不起作用。我添加StateChanged事件但它不起作用。

  <phone:PhoneApplicationPage.ApplicationBar>
    <shell:ApplicationBar x:Name="option_bar" Mode="Minimized" Opacity="0.9"  StateChanged="ApplicationBar_StateChanged">
        <shell:ApplicationBarIconButton IconUri="/Images/coupons.png" Text="Kupony"  />
        <shell:ApplicationBarIconButton IconUri="/Images/basket.png" Text="Koszyk" Click="GoToBasket_Click" ></shell:ApplicationBarIconButton>
        <shell:ApplicationBarIconButton IconUri="/Images/myaccount.png" Text="Moje Konto" Click="Update_Click" />
        <shell:ApplicationBarIconButton IconUri="/Images/road.png" Text="Wyloguj się" Click="logout_Click" />
    </shell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>

这是我在c#中的代码,当应用程序栏的状态由用户更改时应调用该代码:

private void ApplicationBar_StateChanged(object sender, ApplicationBarStateChangedEventArgs e)
        {
            if (option_bar.Mode == ApplicationBarMode.Minimized) 
            {
                MessageBox.Show("fjfsdfds");
            }
            if (e.IsMenuVisible  == true)
            {
                MessageBox.Show("second");
            }
            if (option_bar.IsVisible)
            {
                MessageBox.Show("third");
            }
        }

我认为,即使是ApplicationBar_StateChanged也不会被调用。

1 个答案:

答案 0 :(得分:0)

只有在ApplicationBar中有MenuItem时才会调用ApplicationBar.StateChanged。尝试添加MenuItem并检查是否调用了该事件。

类似的问题是answered here at MSDN forum