zoukankan      html  css  js  c++  java
  • 在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);
  • 相关阅读:
    第五次作业之例行报告
    欢迎来怼—第三次Scrum会议
    例行报告
    探路者 Alpha阶段中间产物
    第六次作业—例行报告
    第五次作业—例行报告
    第四次作业—单元测试
    第四次作业—例行报告
    第四次作业—结对编程 四则运算
    第四次作业—1.代码规范
  • 原文地址:https://www.cnblogs.com/pdfw/p/1422178.html
Copyright © 2011-2022 走看看