1

我需要在应用程序栏是否最小化时处理该事件,但我的代码显然不起作用。我添加了 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 也没有被调用。

4

1 回答 1

0

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

在 MSDN 论坛上回答了类似的问题。

于 2014-02-14T15:01:41.183 回答