WPF 关于拖拽打开文件的注意事项

由于开发需求,需要开发一个类似Win图片浏览的工具

当然也涉及到了拖拽打开的需求

按照固有思路:

<Grid x:Name="grid1"  AllowDrop="True" Drop="grid1_Drop" DragEnter="grid1_DragEnter">

  

        private void grid1_Drop(object sender, DragEventArgs e)
        {
            m_fpath = ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString();
            string directory = System.IO.Path.GetDirectoryName(m_fpath);
            imgArray = GetImgCollection(directory);
            RefreshImage(m_fpath);
        }

        private void grid1_DragEnter(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop))
            {
                e.Effects = DragDropEffects.Link; 
            }
            else 
            {
                e.Effects = DragDropEffects.None;
            }
        }

  但是发现无法触发 grid1_DragEnter 事件,Google发现这个系统权限有关,Vista后微软增加了UAC,使得应用无法跨权限操作。

  由于我是以管理员身份打开应用的,而我桌面的图片权限是用户级的,所以无法拖拽图片。

  解决方案:

  用户权限打开应用,就能很好的支持拖拽

  用管理员权限打开,且支持拖拽,我也看到了一些案例,后期更新:

  

猜你喜欢

转载自www.cnblogs.com/swack/p/10508649.html
WPF