UWP:-如何在拖动项目时创建拖动UI(指示要放置项目的位置)?

时间:2019-07-02 11:07:20

标签: c# xaml uwp

我正在尝试创建类似下面的屏幕快照的拖动UI。如果我在列表视图中将AllowDrop设置为“ true”,它将自动打开空间,为拖放的项目留出空间。但是,我更热衷于提供一个指示“放在这里”而不是空格的UI。

当我在拖动的项目上移动时,如何创建如下所示的带有占位符的东西?

有什么想法吗?

enter image description here

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

  

当我在拖动的项目上移动时,如何创建如下所示的带有占位符的东西?

根据您的要求,您可以使用round(round(16275.874999999998, 3), 2) Footer实现此功能,并在ListViewCollapsed事件处理程序中处理Footer DragOver属性。请参考以下代码。

Drop

Xaml

private  void TargetListView_DragOver(object sender, DragEventArgs e)
{
    // Our list only accepts text
    e.AcceptedOperation = (e.DataView.Contains(StandardDataFormats.Text)) ? DataPackageOperation.Copy : DataPackageOperation.None;
    VisualStateManager.GoToState(this, "Inside", true);
}


private async void TargetListView_Drop(object sender, DragEventArgs e)
{

    if (e.DataView.Contains(StandardDataFormats.Text))
    {

        var def = e.GetDeferral();
        var s = await e.DataView.GetTextAsync();
        var items = s.Split('\n');
        foreach (var item in items)
        {
            _selection.Add(item);
        }
        e.AcceptedOperation = DataPackageOperation.Copy;
        VisualStateManager.GoToState(this, "Outside", true);
        def.Complete();
    }
}

Op在下面发布了uservoice,如果有人认为这有帮助,请投票。

Allowing custom air drop UI while dragging items of a ListView