我们在做桌面应用的时候经常会遇到消息提示框已弹出,但由于操作其它应用而遮挡了提示框。
解决方案:
以WPF MessageBox.Show() 为例。
1 public static MessageBoxResult Show(string messageBoxText, string caption, MessageBoxButton button 2 , MessageBoxImage icon, MessageBoxResult defaultResult, MessageBoxOptions options) 3 { 4 return ShowCore(IntPtr.Zero, messageBoxText, caption, button, icon, defaultResult, options); 5 }
MessageBoxOptions
DefaultDesktopOnly | 131072 |
消息框显示在交互式窗口站的默认桌面上。 指定消息框从 .NET Framework 窗口服务应用程序中显示,以便将事件通知用户。 |
None | 0 |
未设置选项。 |
RightAlign | 524288 |
消息框文本和标题栏标题靠右对齐。 |
RtlReading | 1048576 |
所有文本、按钮、图标和标题栏都从右向左显示。 |
ServiceNotification | 2097152 |
即使用户未登录到计算机,消息框也会在当前活动的桌面上显示。 指定消息框从 .NET Framework 窗口服务应用程序中显示,以便将事件通知用户。 |
根据参数选择DefaultDesktopOnly和ServiceNotification都可以解决置顶的问题。