WEB开发网
开发学院图形图像Flash Silverlight专题(15) - 你自己的视频播放器之自... 阅读

Silverlight专题(15) - 你自己的视频播放器之自定义MoveToPointSlider

 2009-01-13 11:55:44 来源:WEB开发网   
核心提示: 而右边的RepeatButton在第3列,占据了剩下的空间,Silverlight专题(15) - 你自己的视频播放器之自定义MoveToPointSlider(2),其宽度设置为*(有关Grid的布局介绍请参见Silverlight专题(8)-布局介绍)现在我们需要在第一以及第三列上各覆

而右边的RepeatButton在第3列,占据了剩下的空间,其宽度设置为*

(有关Grid的布局介绍请参见Silverlight专题(8)-布局介绍)

现在我们需要在第一以及第三列上各覆盖上一个Rectangle来响应鼠标的点击

使的其能实现我们的预期效果

具体实现步骤如下:

1.给程序添加一个类如下图所示

Silverlight专题(15) - 你自己的视频播放器之自定义MoveToPointSlider

2.让这个类继承Slider类

Silverlight专题(15) - 你自己的视频播放器之自定义MoveToPointSlider

3.实现功能如下

MoveToPointSlider

1publicclass MoveToPointSlider : Slider
2{
3   private Thumb m_horizontalThumb;
4   private FrameworkElement m_leftTrack;
5   private FrameworkElement m_rightTrack;
6 
7   publicoverridevoid OnApplyTemplate()
8   {
9     base.OnApplyTemplate();
10     base.OnApplyTemplate();
11     m_horizontalThumb = GetTemplateChild("HorizontalThumb") as Thumb;
12     m_leftTrack = GetTemplateChild("LeftTrack") as FrameworkElement;
13     if (m_leftTrack !=null)
14       this.m_leftTrack.MouseLeftButtonDown +=new MouseButtonEventHandler(OnMoveThumbToMouse);
15 
16     m_rightTrack = GetTemplateChild("RightTrack") as FrameworkElement;
17     if (m_rightTrack !=null)
18       this.m_rightTrack.MouseLeftButtonDown +=new MouseButtonEventHandler(OnMoveThumbToMouse);
19   }
20 
21   void OnMoveThumbToMouse(object sender, MouseButtonEventArgs e)
22   {
23     Point p = e.GetPosition(this);
24     Value = (p.X - (m_horizontalThumb.ActualWidth /2)) / (ActualWidth - m_horizontalThumb.ActualWidth) * Maximum;
25   }
26}

上一页  1 2 3 4  下一页

Tags:Silverlight 专题 自己

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接