SilverLight拖動(dòng)具體實(shí)現(xiàn)方式介紹
作者:佚名
SilverLight拖動(dòng)的代碼示例將會(huì)在文章為大家呈現(xiàn)出來。希望初學(xué)者們可以通過這些代碼示例清晰的解讀相關(guān)概念,以達(dá)到自己學(xué)習(xí)的目的。
SilverLight的使用可以幫助開發(fā)人員輕松的解決一些以前愛只能依靠美工才能解決的相關(guān)開發(fā)問題。現(xiàn)在我們將會(huì)學(xué)到其中的一個(gè)使用技巧,就是SilverLight拖動(dòng)的實(shí)現(xiàn)方式。#t#
SilverLight拖動(dòng)前臺(tái)代碼:
- < UserControl
- xmlns="http://schemas.microsoft.
com/winfx/2006/xaml/presentation" - xmlns:x="http://schemas.
microsoft.com/winfx/2006/xaml" - x:Class="SilverlightApplic
ation6.Page" - Width="640" Height="480">
- < Canvas x:Name="LayoutRoot"
Background="White"> - < Image Margin="263,185,249,167"
Source="1.png" Stretch="Fill"
MouseLeftButtonDown="Image_
MouseLeftButtonDown" - MouseMove="Image_MouseMove"
- MouseLeftButtonUp="Image_
MouseLeftButtonUp"/> - < /Canvas>
- < /UserControl>
SilverLight拖動(dòng)后臺(tái)代碼:
- using System;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Documents;
- using System.Windows.Ink;
- using System.Windows.Input;
- using System.Windows.Media;
- using System.Windows.Media.Animation;
- using System.Windows.Shapes;
- namespace SilverlightApplication6
- {
- public partial class Page : UserControl
- {
- bool trackingMouseMove = false;
- Point mousePosition;
- public Page()
- {
- // 需要初始化變量
- InitializeComponent();
- }
- private void Image_MouseLeftButtonDown
(object sender, MouseButtonEventArgs e)- {
- FrameworkElement element =
sender as FrameworkElement;- mousePosition = e.GetPosition(null);
- trackingMouseMove = true;
- if (null != element)
- {
- element.CaptureMouse();
- element.Cursor = Cursors.Hand;
- }
- }
- private void Image_MouseMove(object
sender, MouseEventArgs e)- {
- FrameworkElement element = sender
as FrameworkElement;- if (trackingMouseMove)
- {
- double deltaV = e.GetPosition(null).
Y - mousePosition.Y;- double deltaH = e.GetPosition(null).
X - mousePosition.X;- double newTop = deltaV + (double)element.
GetValue(Canvas.TopProperty);- double newLeft = deltaH + (double)
element.GetValue(Canvas.LeftProperty);- element.SetValue(Canvas.TopProperty, newTop);
- element.SetValue(Canvas.LeftProperty, newLeft);
- mousePosition = e.GetPosition(null);
- }
- }
- private void Image_MouseLeftButtonUp
(object sender, MouseButtonEventArgs e)- {
- FrameworkElement element = sender
as FrameworkElement;- trackingMouseMove = false;
- element.ReleaseMouseCapture();
- mousePositionmousePosition.X =
mousePosition.Y = 0;- element.Cursor = null;
- }
- }
- }
以上就是對(duì)SilverLight拖動(dòng)相關(guān)實(shí)現(xiàn)方法做得具體介紹。
責(zé)任編輯:曹凱
來源:
博客園