0

私はここにこのコードを持っています:

       public void DragSource_PreviewMouseMove(object sender, MouseEventArgs e)
    {
        // Get the current mouse position
        Point mousePos = e.GetPosition(null);

        Vector diff = startPoint - mousePos; // startPoint error

        if (e.LeftButton == MouseButtonState.Pressed &&
            Math.Abs(diff.X) > SystemParameters.MinimumHorizontalDragDistance ||
            Math.Abs(diff.Y) > SystemParameters.MinimumVerticalDragDistance)
        {
            Label lbl = (Label)sender;
            DataObject dataObj = new DataObject(lbl.Content);
            DragDrop.DoDragDrop(lbl, dataObj, DragDropEffects.All);
        } 
    }

    public void DragSource_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
       var startPoint = e.GetPosition(null);
    }

startPoint が previewmousemove に存在しないと表示されています。WPF で実行しています。通常はセッションに保存して渡しますが、WPF にはセッションがありません。このエラーを解決するにはどうすればよいですか? http://wpftutorial.net/DragAndDrop.htmlおよびhttp://blogs.msdn.com/b/jaimer/archive/2007/07/12/drag-drop-in-からドラッグ アンド ドロップを行う方法を学習しています。 wpf-explained-end-to-end.aspx

4

1 に答える 1

1

PreviewMouseLeftButtonDown イベントにハングアップし、クラスのプライベート変数 startpoint に GetPosition Result を格納できます。

private Point _startPoint;
yourTreeview_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    _startPoint = e.GetPosition(null);
}
于 2013-07-16T02:55:10.680 に答える