실버라이트 관련 팁 모음

시삽: 레드플러스 님 
게시판 이동:
 제목 : 드래그인드롭
글번호: 10
작성자: 레드플러스
작성일: 2009/06/28 오전 1:57:22
조회수: 2889
파일: RiaDragAndDrop.zip (557 KB) / 전송수: 1587
<UserControl x:Class="RiaDragAndDrop.Page"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Width="400" Height="300">
    <Canvas Width="400" Height="300">        
        <TextBlock x:Name="txtDrag" Text="드래그앤드롭" FontSize="30"></TextBlock>
    </Canvas>
</UserControl>


using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;

namespace RiaDragAndDrop
{
    public partial class Page : UserControl
    {
        private bool isMouseDown = false;
        private Point lastPoint = new Point();
        private Point offset = new Point();

        public Page()
        {
            InitializeComponent();

            txtDrag.MouseLeftButtonDown += new MouseButtonEventHandler(txtDrag_MouseLeftButtonDown);
            txtDrag.MouseMove += new MouseEventHandler(txtDrag_MouseMove);
            txtDrag.MouseLeftButtonUp += new MouseButtonEventHandler(txtDrag_MouseLeftButtonUp);
        }

        void txtDrag_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            txtDrag.ReleaseMouseCapture();
            isMouseDown = false;
        }

        void txtDrag_MouseMove(object sender, MouseEventArgs e)
        {
            if (isMouseDown)
            {
                lastPoint = e.GetPosition(null);
                txtDrag.SetValue(Canvas.LeftProperty, (lastPoint.X - offset.X));
                txtDrag.SetValue(Canvas.TopProperty, (lastPoint.Y - offset.Y));
            }
        }

        void txtDrag_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            txtDrag.CaptureMouse();
            isMouseDown = true;

            lastPoint = e.GetPosition(null);
            offset.X = lastPoint.X - Convert.ToDouble(txtDrag.GetValue(Canvas.LeftProperty));
            offset.Y = lastPoint.Y - Convert.ToDouble(txtDrag.GetValue(Canvas.TopProperty));
        }
    }
}
 
이전 글   다음 글 삭제 수정 답변 글쓰기 리스트

(댓글을 남기려면 로그인이 필요합니다.)

관련 아티클 리스트
  제       목 파일 작성자 작성일 조회
이전글 (이전 글이 존재하지 않습니다.)
현재글 드래그인드롭 RiaDragAndDrop.zip(557 KB) 레드플러스 2009-06-28 2889
다음글 StackPanel Layout - 레드플러스 2009-02-15 2890
 
손님 사용자 Anonymous (손님)
로그인 Home