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);
}
}
留言列表