• 在WPF里面如何使用FolderBrowserDialog


    System.Windows.Forms.FolderBrowserDialog fd = new System.Windows.Forms.FolderBrowserDialog();
    fd.ShowDialog(
    this);

    上面的代码如果是在WinForm程序里面,是没有问题的。但是如果在WPF里面则编译不通过,错误描述是

    The best overloaded method match for 'System.Windows.Forms.CommonDialog.ShowDialog(System.Windows.Forms.IWin32Window)' has some invalid arguments。

    这是因为WPF的窗口不是继承IWin32Window接口的,继承的是System.Windows.IWindowService接口。如果想在WPF程序里面使用FolderBrowserDialog,可以象下面这么写:

    private class OldWindow : System.Windows.Forms.IWin32Window
            
    {
                IntPtr _handle;
                
    public OldWindow(IntPtr handle)
                
    {
                    _handle 
    = handle;
                }


                
    IWin32Window Members
            }




    System.Windows.Forms.FolderBrowserDialog fd 
    = new System.Windows.Forms.FolderBrowserDialog();
    fd.ShowNewFolderButton 
    = false;
    System.Windows.Interop.HwndSource source 
    = PresentationSource.FromVisual(thisas System.Windows.Interop.HwndSource;
    System.Windows.Forms.IWin32Window win 
    = new OldWindow(source.Handle);
    fd.ShowDialog(
    this);
  • 相关阅读:
    Redis 和 Memcached 的区别
    缓存详解
    HTTP常见状态码
    ORM的概念, ORM到底是什么
    remote: Unauthorized fatal: Authentication failed for...
    TR、FN、FP、FN
    <笔记>ue破解
    <笔记>bmp图片数据格式
    三轴加速度数据处理
    智能手环+三轴加速度传感器总结
  • 原文地址:https://www.cnblogs.com/pdfw/p/1422178.html
Copyright © 2020-2023  润新知