2011-07-08 8 views
14

Tôi mới dùng WPF nên đây có lẽ là một vấn đề khá dễ. Tôi mở một cửa sổ hộp thoại bằng cách sử dụng ShowDialog(). Sau đó, nếu tôi nhấp vào một cửa sổ khác có chế độ toàn màn hình hoặc chỉ bao gồm hộp thoại của tôi thì rất khó để quay lại hộp thoại. Biểu tượng hiển thị trong thanh tác vụ đưa tôi trở lại cửa sổ chính WPF nhưng hộp thoại vẫn ẩn đằng sau cửa sổ khác. Tôi có hoặc phải giảm thiểu các cửa sổ chặn hoặc Alt-Tab trở lại ứng dụng của tôi (mà sẽ hiển thị hộp thoại nhưng để lại cửa sổ chính ẩn).Dialog Window bị mất đằng sau các cửa sổ khác

Định nghĩa cho cửa sổ trông giống như:

<Window x:Class="MyProject.MyWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     ResizeMode="CanResizeWithGrip" 
     ShowInTaskbar="False" 
     WindowStartupLocation="CenterOwner" 
     Width="750" 
     Height="565" 
     Title="MyWindow"> 

Tôi mở nó thích:

var dlg = new MyWindow(); 
if (dlg.ShowDialog() != true) 
    return; 

Trả lời

18

Bạn nên thiết lập các chủ sở hữu của cửa sổ hộp thoại của bạn. Một cái gì đó như thế này.

var dlg = new MyWindow(); 
dlg.Owner = this; 
if (dlg.ShowDialog() != true)  
    return; 
+0

Điều đó đã xảy ra. Cảm ơn! – Jason

+0

Bạn được chào đón. –

+0

Có cách nào tự động hơn không? Vượt qua nó như một tham số có thể là một, nhưng có thể có một tham số tốt hơn? – bytecode77