You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gong WPF拖拽ListBox项无法按拾取位置放置的问题求助

问题描述

我希望将ListBox元素从拾取的精确位置放下,但该功能无法正常实现。

相关代码

PropertyViewModel.cs

private void OnPreviewMouseLeftButtonDown(MouseButtonEventArgs? e)
{
    Debug.WriteLine("HEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEIIIIIIIIIIIIIIIIIIIIIIIIII");
    if (e.Source is FrameworkElement element && element.DataContext is PropertyViewModel propertyViewModel)
    {
        
        Point mousePosition = e.GetPosition(element);

        propertyViewModel.MouseOffset = new Point(
            mousePosition.X,
            mousePosition.Y
        );

        //Debug.WriteLine("MouseOffset: " + propertyViewModel.MouseOffset);
    }
}

TemplateGeneratorViewModel.cs

public void Drop(IDropInfo dropInfo)
 {

     if (dropInfo.Data is PropertyViewModel originalProperty && dropInfo.VisualTarget is ListBox listBox)
     {
         Point dropPosition = dropInfo.DropPosition;
         Debug.WriteLine("DROP: " + dropPosition);
         if (listBox.Name == CanvasListBoxName)
         {
             if (!originalProperty.IsOnCanvas)
             {

              CloneItemToCanvas(originalProperty, dropPosition);
                 //DragDrop.DefaultDropHandler.Drop(dropInfo);
             }
             else
             {
              var newPosition = new Point(
               dropPosition.X - originalProperty.MouseOffset.X,
               dropPosition.Y - originalProperty.MouseOffset.Y);

                 originalProperty.X = (int)(newPosition.X);
                 originalProperty.Y = (int)(newPosition.Y);
             }
         }
         else if (listBox.Name == PropertyListBoxName && originalProperty.IsOnCanvas)
         {
             // Move the item back to the property list if needed
             originalProperty.IsOnCanvas = false;
             CanvasItems.Remove(originalProperty);
         }
     }

 }

预期行为

通过Gong的Drop() WPF方法,将元素从相对于鼠标的拾取位置精确放下。

我已卡壳多日,不知如何解决,感谢您的时间。


内容的提问来源于stack exchange,提问作者Alexandru Filipescu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 20:42:44