2010-10-26 30 views
5

Tôi đang cố tạo một MessageBox tùy chỉnh bằng cách sử dụng Cửa sổ WPF được gọi với ShowDialog().C#/WPF, cách tạo một cửa sổ (được tạo với thanh tiêu đề Window.ShowDialog()) nhấp nháy khi nhấp vào cửa sổ chính (như MessageBox)?

Cho đến giờ, tôi đã quản lý để triển khai mọi thứ, ngoại trừ một điều.

Như bạn đã biết, khi bạn sử dụng MessageBox.Show("text"); bạn không thể đặt tiêu điểm hoặc nhấp vào cửa sổ chính (được gọi là MessageBox). Nếu bạn cố gắng nhấp vào cửa sổ chính, MessageBox sẽ nhấp nháy một thời gian ngắn để cảnh báo bạn rằng bạn phải đóng cửa nếu trước tiên.

Windows được tạo với Window.ShowDialog();, tuy nhiên, không hiển thị hành vi đó. Trong thực tế, trong khi bạn không thể đặt tiêu điểm cho cửa sổ chính, con (được gọi với ShowDialog()) sẽ không bao giờ nhấp nháy một thời gian ngắn.

Câu hỏi của tôi là, có cách nào để thực hiện điều đó trong WPF không? Tôi đã tìm kiếm một câu trả lời nhưng tôi phải thừa nhận, tôi đang bối rối.

Cảm ơn tất cả mọi người!

Trả lời

11

Bạn cần đặt chính xác Owner của cửa sổ phương thức, ví dụ: sử dụng đoạn mã sau từ bên trong cửa sổ sở hữu:

Window win = new SomeModalWindow(); 
win.Owner = this; 
win.ShowDialog(); 
+1

Vì vậy, đơn giản ... Vâng, bây giờ tôi cảm thấy ngu ngốc! Cảm ơn rất nhiều! –

3

Bạn sẽ phải thiết lập Owner tài sản của con Window để phụ huynh Window. Xem Tài liệu MSDN here.

Các vấn đề liên quan