

/**//// <summary>
/// Desc:媒体播放器控件
/// Author:williams
/// Date:2007-9-27
/// </summary>
public class MediaPlayControl : Control
{

私有变量#region 私有变量
private FrameworkElement parentControl;
private Canvas timeline;
private Canvas playButton;
private Canvas pauseButton;
private Canvas stopButton;
private MediaElement videoWindow;
private string mediaUrl="";
#endregion

公有属性#region 公有属性
public string MediaUrl
{
get
{return this.mediaUrl;}
set
{
this.mediaUrl = value;
Uri url = new Uri(this.mediaUrl, UriKind.Relative);
this.videoWindow.Source = url;
}
}
#endregion

构造函数#region 构造函数
public MediaPlayControl() 
{
System.IO.Stream s = this.GetType().Assembly.GetManifestResourceStream("SilverControls.MediaPlayControl.xaml");
parentControl = this.InitializeFromXaml(new System.IO.StreamReader(s).ReadToEnd());
this.playButton = parentControl.FindName("PlayButton") as Canvas;
this.pauseButton = parentControl.FindName("PauseButton") as Canvas;
this.stopButton = parentControl.FindName("StopButton") as Canvas;
this.videoWindow = parentControl.FindName("VideoWindow") as MediaElement;
this.playButton.MouseLeftButtonUp += new MouseEventHandler(playButton_MouseLeftButtonUp);
this.stopButton.MouseLeftButtonUp += new MouseEventHandler(stopButton_MouseLeftButtonUp);
this.pauseButton.MouseLeftButtonUp += new MouseEventHandler(pauseButton_MouseLeftButtonUp);
}
void pauseButton_MouseLeftButtonUp(object sender, MouseEventArgs e)
{
this.videoWindow.Pause();
}
void stopButton_MouseLeftButtonUp(object sender, MouseEventArgs e)
{
this.videoWindow.Stop();
}
void playButton_MouseLeftButtonUp(object sender, MouseEventArgs e)
{
this.Play();
}
#endregion

公有方法#region 公有方法
public void Play()
{
if(this.mediaUrl!=string.Empty)
{
this.videoWindow.Play();
}
}
#endregion
}
public void Page_Loaded(object o, EventArgs e)
{
// Required to initialize variables
InitializeComponent();
double top = 100;
double left = 20;
MediaPlayControl media = new MediaPlayControl();
media.MediaUrl = "wow.wmv";
media.SetValue<double>(Canvas.TopProperty, top);
media.SetValue<double>(Canvas.LeftProperty, left);
this.Children.Add(media);
}| 第1页: 用silverlight设计MediaPlay控件 |