FolderBrowserDialog Vista风格 - 如何中心屏幕?

时间:2015-02-12 17:28:54

标签: c# wpf winforms interop winforms-interop

我正在尝试使用这个项目,该项目改编自MSDN http://msdn2.microsoft.com/en-us/library/ms756482.aspx上的Vista Bridge示例。

      WPFFolderBrowser.WPFFolderBrowserDialog fbd = new     WPFFolderBrowser.WPFFolderBrowserDialog();
      fbd.Title = "Title";
      fbd.InitialDirectory = Environment.CurrentDirectory;

            if (fbd.ShowDialog() == true)
                {
                }

一切顺利,但我只想让浏览窗口居中,似乎无法找到所需的属性。如果有人使用它或知道它,请给我一个提示!

1 个答案:

答案 0 :(得分:0)

简短的回答是WPFFolderBrowser不公开该功能。

更长的答案是,由于开源的强大功能,您可以编辑WPFFoldererBrowser.ShowDialog()来执行您想要的操作。你关心的那条线是

int hresult = nativeDialog.Show(GetHandleFromWindow(parentWindow));

你需要:

  1. 取出GetHandleFromWindow(parentWindow)部分
  2. 获取窗口句柄指针
  3. 按照the MSDN dialog box positioning documentation中的说明操作,(Using SetWindowPos in C# to move windows around将帮助您将MSDN文档中的本机代码转换为您想要的托管代码)