UWP 拖拽文件

简介: 原文:UWP 拖拽文件桌面环境下的UWP,加入拖拽模式还是会增加用户好感度的。 好了,先看一下我最新研发的【小微识花】吧,演示一下       炫酷,有没有, 而且这识别速度,也是杠杠的~~~    关于拖拽的实现,一般有两个方法。
原文: UWP 拖拽文件

桌面环境下的UWP,加入拖拽模式还是会增加用户好感度的。

好了,先看一下我最新研发的【小微识花】吧,演示一下

 

 

 

炫酷,有没有,

而且这识别速度,也是杠杠的~~~ 

 

关于拖拽的实现,一般有两个方法。但是不论哪一个,首先相同的是,要对要对目标设置属性Alldrop=true;

就拿Grid作比方

<Grid AllowDrop="True">
</Grid>

 

1、原生实现

前台加点东西

<Grid AllowDrop="True" DragOver="Grid_DragOver" Drop="Grid_Drop">

 

在后台写代码:

        private async void Grid_Drop(object sender, DragEventArgs e)
        {
            var defer = e.GetDeferral();
            try
            {
                DataPackageView dpv = e.DataView;
                if (dpv.Contains(StandardDataFormats.StorageItems))
                {
                    List<StorageFile> files1 = new List<StorageFile>();
                    var files = await dpv.GetStorageItemsAsync();
                    foreach (var item in files)
                    {
                        //todo......
                    }
                }
            }
            finally
            {
                defer.Complete();
            }
        }

        private void Grid_DragOver(object sender, DragEventArgs e)
        {
            e.AcceptedOperation = DataPackageOperation.Copy;
            e.DragUIOverride.IsCaptionVisible = false;
            e.DragUIOverride.IsContentVisible = true;
            e.DragUIOverride.IsGlyphVisible = false;

            e.Handled = true;
        }

 

2、利用WTS提供的DragDrop Services

前台引用:

xmlns:dd="using:XiaoweiFlowerRecognition.Services.DragAndDrop"
        <Grid AllowDrop="True">

        <dd:DragDropService.Configuration>
            <dd:DropConfiguration
            DropStorageItemsAction="{x:Bind GetStorageItem}"   />
        </dd:DragDropService.Configuration>

        </Grid>

 

后台代码就很简单了:

响应Action方法 GetStorageItem 即可

        public Action<IReadOnlyList<IStorageItem>> GetStorageItem => ((items) => OnGetStorageItem(items));
        public async void OnGetStorageItem(IReadOnlyList<IStorageItem> items)
        {
            foreach (var item in items)
            {
                //todo......
            }
        }

 

 

推荐使用第二种方法吧,毕竟WTS也可以提供更多的服务来使用,很方便快捷的。

目录
相关文章
【C#】【桌面应用开发】拖拽文件到文本框获得所拖拽文件的路径
【C#】【桌面应用开发】拖拽文件到文本框获得所拖拽文件的路径
193 0
【C#】【桌面应用开发】拖拽文件到文本框获得所拖拽文件的路径
|
Windows UED API
[UWP]如何实现UWP平台最佳图片裁剪控件
原文:[UWP]如何实现UWP平台最佳图片裁剪控件 前几天我写了一个UWP图片裁剪控件ImageCropper(开源地址),自认为算是现阶段UWP社区里最好用的图片裁剪控件了,今天就来分享下我编码的过程。
1122 0
|
Android开发 iOS开发 UED
[UWP]浅谈按钮设计
原文:[UWP]浅谈按钮设计 一时兴起想谈谈UWP按钮的设计。 按钮是UI中最重要的元素之一,可能也是用得最多的交互元素。好的按钮设计可以有效提高用户体验,构造让人眼前一亮的UI。而且按钮通常不会影响布局,小小的按钮无论怎么改也不会对性能有多大影响,所以不少注重细节的设计师最为热衷修改按钮。
1456 0
|
Web App开发 C# Windows
WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWP/Chrome)
原文:WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWP/Chrome) 版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
1518 0
TabControl 伸缩式菜单 仿照 uwp SplitView
原文:TabControl 伸缩式菜单 仿照 uwp SplitView 留下备用笔记 之前用的Frame+Page的切换content,但是发现页面content内容控件多的时候,每一次切换都有点卡,点击了半天才反应过来(每次切换都要重新加载控件,具体怎么解决不知道.
786 0
|
C# Windows Web App开发
WPF 应用完全模拟 UWP 的标题栏按钮
原文:WPF 应用完全模拟 UWP 的标题栏按钮 版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:http://blog.csdn.net/wpwalter/),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。
1040 0
|
C#
WPF 控件库——仿制Windows10的进度条
原文:WPF 控件库——仿制Windows10的进度条 一、其实有现成的   先来看看Windows10进度条的两种模式:       网上有不少介绍仿制Windows10进度条的文章,也都实现了不错的效果。
1333 0