1
正試圖在WPF中實現拖放操作。我現在的代碼允許我單擊按鈕的左上角並將其向下或向右拖動。拖放WPF不允許我向左或向上拖動
出於某種原因,它不會讓我向左或向上拖,而我看不出爲什麼。
的代碼如下:
private void ctlTextbox_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
//In this event, we get current mouse position on the control to use it in the MouseMove event.
FirstXPos = e.GetPosition(sender as Control).X;
FirstYPos = e.GetPosition(sender as Control).Y;
FirstArrowXPos = e.GetPosition((sender as Control).Parent as Control).X - FirstXPos;
FirstArrowYPos = e.GetPosition((sender as Control).Parent as Control).Y - FirstYPos;
}
private void ctlTextbox_MouseMove(object sender, MouseEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
(sender as FrameworkElement).SetValue(Canvas.LeftProperty,
e.GetPosition((sender as FrameworkElement).Parent as FrameworkElement).X - FirstXPos);
(sender as FrameworkElement).SetValue(Canvas.TopProperty,
e.GetPosition((sender as FrameworkElement).Parent as FrameworkElement).Y - FirstYPos);
}
}
的XAML:
<Canvas x:Name="MainGrid" RenderTransformOrigin = "0.499,0.425" AllowDrop="True" >
<Button x:Name="button" Content="112" Style="{StaticResource RoomButton}" MouseLeftButtonDown="ctlTextbox_MouseLeftButtonDown" MouseMove="ctlTextbox_MouseMove" Height="32" Canvas.Left="69" Canvas.Top="67" Width="65" Margin="0" />
</Canvas>
除了你的問題...什麼是'PreviewMouseLeftButtonUp(...)'代碼應該做的? 'object MovingObject = sender; MovingObject = null;'您將'MovingObject'設置爲發件人,然後在將'MovingObject'設置爲null後立即設置。我沒有看到這一點。 –
請參閱使用XAML代碼進行編輯,以顯示這些功能的用途 – AJH
這仍然無法解決左/右拖動問題。 – AJH