/// <summary> /// メッセージダイアログ /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void MessageDialog_Click(object sender, RoutedEventArgs e) { var dlg = new MessageDialog("メッセージ", "タイトル"); // It doesn't work on .NET 5 // ((IInitializeWithWindow)(object)dlg).Initialize(new WindowInteropHelper(this).Handle); var withWindow = dlg.As <IInitializeWithWindow>();; withWindow.Initialize(new WindowInteropHelper(Application.Current.MainWindow).Handle); await dlg.ShowAsync(); }
public static void Initialize(this MessageDialog md, Window window = null) { IInitializeWithWindow initializeWithWindowWrapper = md.As <IInitializeWithWindow>(); IntPtr hwnd; if (window == null) { hwnd = PInvoke.User32.GetActiveWindow(); } else { hwnd = window.As <IWindowNative>().WindowHandle; }; initializeWithWindowWrapper.Initialize(hwnd); }
public static void Initialize(this MessageDialog md, IntPtr hWndArg) { IInitializeWithWindow initializeWithWindowWrapper = md.As <IInitializeWithWindow>(); IntPtr hwnd; if (hWndArg == IntPtr.Zero) { hwnd = PInvoke.User32.GetActiveWindow(); } else { hwnd = hWndArg; } initializeWithWindowWrapper.Initialize(hwnd); }