Silverlight之鼠標拖放物體

Drag.xaml
 
<Canvas>
        <Grid Width="300" Height="60" Background="GreenYellow" MouseMove="Grid_MouseMove" MouseLeftButtonDown="Grid_MouseLeftButtonDown" MouseLeftButtonUp="Grid_MouseLeftButtonUp">           
        </Grid>
 </Canvas>

Drag.xaml.cs

        Point currentPoint;
        bool mouseMoving = false;
        private void Grid_MouseMove(object sender, MouseEventArgs e)
        {
            FrameworkElement element = sender as FrameworkElement;
            if (mouseMoving)
            {
                double cX = e.GetPosition(null).X - currentPoint.X;
                double cY = e.GetPosition(null).Y - currentPoint.Y;
                element.SetValue(Canvas.TopProperty, cY + (double)element.GetValue(Canvas.TopProperty));
                element.SetValue(Canvas.LeftProperty, cX + (double)element.GetValue(Canvas.LeftProperty));
                currentPoint = e.GetPosition(null);
            }
        }

        private void Grid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            FrameworkElement element = sender as FrameworkElement;
            currentPoint = e.GetPosition(null);
            mouseMoving = true;
            if (element != null)
            {
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章