日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Silverlight开发历程—(输入事件和非输入事件)

發(fā)布時間:2024/4/11 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Silverlight开发历程—(输入事件和非输入事件) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

????? ?Silverlight事件主要分為輸入事件和非你輸入事件兩個種類。

?????? 輸入事件主要指鼠標、鍵盤等你輸入設備的事件;非輸入事件指對象生存期的改變以及狀態(tài)的改變等。我們這篇文章主要講輸入事件,至于事件的功能這里不再描述,主要是通過一個綜合的例子來體驗事件.

?????? 做一個可以用鼠標在指定區(qū)域內(nèi)隨意拖放的圓,在拖放過程中用到MouseMove、MouseLeftButtonDown、MouseLeftButtonUp這三個事件在移動鼠標的過程中,實時的來獲取鼠標的坐標,然后更新圓的Canvas.Top和Canvas.Left

XAML:

<Canvas x:Name="LayoutRoot" Background="AliceBlue"><Ellipse Canvas.Top="50" Canvas.Left="50" Width="100" Height="100" Fill="Gold" Stroke="Black" StrokeThickness="3" MouseLeftButtonDown="Ellipse_MouseLeftButtonDown" MouseMove="Ellipse_MouseMove" MouseLeftButtonUp="Ellipse_MouseLeftButtonUp"/><TextBlock x:Name="txb_postion" FontSize="26" /></Canvas>


C#:

Point CurrPostion;//定義當前坐標bool MouseMoveing = false;//定義是否移動中的布爾變量public MouseEvent(){InitializeComponent();}private void Ellipse_MouseLeftButtonDown(object sender, MouseButtonEventArgs e){FrameworkElement element = sender as FrameworkElement;//獲取當前坐標CurrPostion = e.GetPosition(null);//設置開始拖動變量MouseMoveing = true;if (element != null){//捕捉鼠標位置element.CaptureMouse();//設置鼠標的指針為手形element.Cursor = Cursors.Hand;}}private void Ellipse_MouseMove(object sender, MouseEventArgs e){//獲取當前的Silverlight對象FrameworkElement element = sender as FrameworkElement;if (MouseMoveing){//獲取當前坐標double CurrX = e.GetPosition(null).X - CurrPostion.X;double CurrY = e.GetPosition(null).Y - CurrPostion.Y;//設置對象的坐標element.SetValue(Canvas.LeftProperty, CurrX + (double)element.GetValue(Canvas.LeftProperty));element.SetValue(Canvas.TopProperty, CurrY + (double)element.GetValue(Canvas.TopProperty));//輸出當前坐標txb_postion.Text = "Ellipse的當前坐標,X:" + CurrPostion.X.ToString() + ",Y:" + CurrPostion.Y.ToString();//保存當前坐標CurrPostion = e.GetPosition(null);}}private void Ellipse_MouseLeftButtonUp(object sender, MouseButtonEventArgs e){FrameworkElement element = sender as FrameworkElement;//放開鼠標后釋放拖動變量的值MouseMoveing = false;//停止捕捉鼠標位置element.ReleaseMouseCapture();//設置當前坐標CurrPostion.X = 0;CurrPostion.Y = 0;//恢復原來鼠標的指針element.Cursor = null;}


然后運行結(jié)果,可以隨意拖動圓,不過不太完整當鼠標把圓拖到瀏覽器邊緣以外看不到時,就拖不回來了。有興趣的朋友可以再完善一下:

例子很簡單,主要是為了體驗Silverlight的輸入事件。

總結(jié)

以上是生活随笔為你收集整理的Silverlight开发历程—(输入事件和非输入事件)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。