Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static class MyWpfExtensions
- {
- public static System.Windows.Forms.IWin32Window GetIWin32Window(this System.Windows.Media.Visual visual)
- {
- var source = System.Windows.PresentationSource.FromVisual(visual) as System.Windows.Interop.HwndSource;
- System.Windows.Forms.IWin32Window win = new OldWindow(source.Handle);
- return win;
- }
- private class OldWindow : System.Windows.Forms.IWin32Window
- {
- private readonly System.IntPtr _handle;
- public OldWindow(System.IntPtr handle)
- {
- _handle = handle;
- }
- #region IWin32Window Members
- System.IntPtr System.Windows.Forms.IWin32Window.Handle
- {
- get { return _handle; }
- }
- #endregion
- }
- }
- var dlg = new FolderBrowserDialog();
- System.Windows.Forms.DialogResult result = dlg.ShowDialog(this.GetIWin32Window());
- public class OldWindow : System.Windows.Forms.IWin32Window
- {
- IntPtr _handle;
- public OldWindow(IntPtr handle)
- {
- _handle = handle;
- }
- #region IWin32Window Members
- IntPtr System.Windows.Forms.IWin32Window.Handle
- {
- get { return _handle; }
- }
- #endregion
- }
- IntPtr mainWindowPtr = new WindowInteropHelper(this).Handle; // 'this' means WPF Window
- folderBrowserDialog.ShowDialog(new OldWindow(mainWindowPtr));
- private class OldWindow : System.Windows.Forms.IWin32Window
- {
- IntPtr _handle;
- public OldWindow(IntPtr handle)
- {
- _handle = handle;
- }
- #region IWin32Window Members
- IntPtr System.Windows.Forms.IWin32Window.Handle
- {
- get { return _handle; }
- }
- #endregion
- }
- System.Windows.Forms.FolderBrowserDialog dlg = new FolderBrowserDialog();
- HwndSource source = PresentationSource.FromVisual(this) as HwndSource;
- System.Windows.Forms.IWin32Window win = new OldWindow(source.Handle);
- System.Windows.Forms.DialogResult result = dlg.ShowDialog(win);
- HwndSource source = PresentationSource.FromVisual(this) as HwndSource;
- IWin32Window win = source as IWin32Window;
- //add a reference to System.Windows.Forms.dll
- public partial class MainWindow : Window, System.Windows.Forms.IWin32Window
- {
- public MainWindow()
- {
- InitializeComponent();
- }
- private void button_Click(object sender, RoutedEventArgs e)
- {
- var fbd = new FolderBrowserDialog();
- fbd.ShowDialog(this);
- }
- IntPtr System.Windows.Forms.IWin32Window.Handle
- {
- get
- {
- return ((HwndSource)PresentationSource.FromVisual(this)).Handle;
- }
- }
- }
Add Comment
Please, Sign In to add comment