cundeng 发表于 2015-5-9 05:04:58

Windows Phone 7 程序菜单栏ApplicationBar

  ApplicationBar控件时windows phone 7上的一个菜单,它传统的Windows程序的菜单的作用类似。
ApplicationBar(ApplicationBarIconButton和ApplicationBarMenuItem)相关的类定义在Microsoft.Phone.Shell命名空间。与UIElement和FrameworkElement等常规Silverlight编程的类层次是完全分开的,严格说来ApplicationBar不是你的页面的可视化的一部分。
一个ApplicationBar最多可包含四个按钮。如果还有额外的选项可以通过菜单项来添加,这些菜单项默认是不显示的。只有在点击菜单栏右侧的省略号(或省略号下方的区域)时才会显示出来。
  该项目包含一个MediaElement MoviePlayer播放影片,而ApplicationBar包含第一,播放,暂停,最后四个选项。






   
      
            
            
      
      
      
            
      
      
            
            
            
      
   
   
      
            
            
            
            
      
   

View Code



using System;
using System.Windows;
using System.Windows.Media;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
namespace MoviePlayer
{
    public partial class MainPage : PhoneApplicationPage
    {
      // Constructor
      public MainPage()
      {
            InitializeComponent();
            // Re-assign names already in the XAML file
            appbarRewindButton = this.ApplicationBar.Buttons as ApplicationBarIconButton;
            appbarPlayButton = this.ApplicationBar.Buttons as ApplicationBarIconButton;
            appbarPauseButton = this.ApplicationBar.Buttons as ApplicationBarIconButton;
            appbarEndButton = this.ApplicationBar.Buttons as ApplicationBarIconButton;
      }
      // ApplicationBar buttons
      void OnAppbarRewindClick(object sender, EventArgs args)
      {
            mediaElement.Position = TimeSpan.Zero;
      }
      void OnAppbarPlayClick(object sender, EventArgs args)
      {
            mediaElement.Play();
      }
      void OnAppbarPauseClick(object sender, EventArgs args)
      {
            mediaElement.Pause();
      }
      void OnAppbarEndClick(object sender, EventArgs args)
      {
            mediaElement.Position = mediaElement.NaturalDuration.TimeSpan;
      }
      // MediaElement events
      void OnMediaElementMediaFailed(object sender, ExceptionRoutedEventArgs args)
      {
            errorText.Text = args.ErrorException.Message;
      }
      void OnMediaElementMediaOpened(object sender, RoutedEventArgs args)
      {
            appbarRewindButton.IsEnabled = true;
            appbarEndButton.IsEnabled = true;
      }
      void OnMediaElementCurrentStateChanged(object sender, RoutedEventArgs args)
      {
            statusText.Text = mediaElement.CurrentState.ToString();
            if (mediaElement.CurrentState == MediaElementState.Stopped ||
                mediaElement.CurrentState == MediaElementState.Paused)
            {
                appbarPlayButton.IsEnabled = true;
                appbarPauseButton.IsEnabled = false;
            }
            else if (mediaElement.CurrentState == MediaElementState.Playing)
            {
                appbarPlayButton.IsEnabled = false;
                appbarPauseButton.IsEnabled = true;
            }
      }
    }
}
页: [1]
查看完整版本: Windows Phone 7 程序菜单栏ApplicationBar