IDE:VS2017

Net:Net4.8


今天突然想到,要如何在WPF上移動按鈕呢

所以上網查了一下資料。做個紀錄

Xaml:

<Canvas>
            <Button Width="50" Height="50" PreviewMouseDown="Button_PreviewMouseDown" PreviewMouseMove="Button_PreviewMouseMove" PreviewMouseUp="Button_PreviewMouseUp" Content="Button" Canvas.Left="57" Canvas.Top="56"/>
</Canvas>


Code:

        Point _point = new Point();
        bool _isMove = false;
        private void Button_PreviewMouseDown(object sender, MouseButtonEventArgs e)
        {
            _isMove = true;
            _point = e.GetPosition(null);
        }

        private void Button_PreviewMouseUp(object sender, MouseButtonEventArgs e)
        {
            _isMove = false;
        }

        private void Button_PreviewMouseMove(object sender, MouseEventArgs e)
        {
            if (_isMove)
            {

                FrameworkElement currEle = sender as FrameworkElement;
                double xPos = e.GetPosition(null).X - _point.X + (double)currEle.GetValue(Canvas.LeftProperty);
                double yPos = e.GetPosition(null).Y - _point.Y + (double)currEle.GetValue(Canvas.TopProperty);
                currEle.SetValue(Canvas.LeftProperty, xPos);
                currEle.SetValue(Canvas.TopProperty, yPos);

                _point = e.GetPosition(null);
            }

         }


        

 

arrow
arrow
    文章標籤
    C# WPF
    全站熱搜

    軒軒的爸媽 發表在 痞客邦 留言(0) 人氣()