Tôi có một điều khiển WPF Popup
có chứa một số điều khiển chỉnh sửa (hộp danh sách, hộp văn bản, hộp kiểm) được đặt ra với khá nhiều khoảng trắng.Tại sao một PopF WPF đóng khi vùng nền của nó được nhấp?
Popup.StaysOpen
được đặt thành False
, bắt buộc. Nếu người dùng nhấp vào nơi khác trong ứng dụng, thao tác chỉnh sửa sẽ được xem là bị hủy và cửa sổ bật lên sẽ đóng lại.
Thật không may, cửa sổ bật lên cũng đóng bất cứ khi nào người dùng nhấp vào trong vùng nền của cửa sổ bật lên (khoảng cách giữa các điều khiển chỉnh sửa).
Tôi đã thử đặt cửa sổ bật lên thành Focusable
. Tôi cũng đã cố gắng thiết lập con của popup (một Border
) để được tập trung. Không may mắn ở cả hai mặt trận.
Hơn nữa, sự kiện chuột dường như đường hầm qua cửa sổ bật lên. Bất kỳ phần tử nào bên dưới cửa sổ bật lên khi tôi nhấp vào nó sẽ trở nên tập trung. Điều này mặc dù cả hai số Popup
và Border
(mà tôi đang nhấp) có cả hai số IsHitTestVisible
và Focusable
được đặt thành true
.
+1 rất đẹp và thanh lịch! –
Giải pháp tuyệt vời! Tôi thậm chí có thể làm điều đó với một điều khiển được xác định trên Generic.xaml, bằng cách sử dụng EventToCommand, đi qua EventArgs để lệnh, và sau đó thiết lập Handled = True. Cảm ơn! – Dror
Một cách khác để lén xử lý ngay cả vào một chỗ khó khăn là lấy được một lớp 'ArmouredPopup' có nguồn gốc từ 'Popup'. Nó có thể ghi đè lên 'OnMouseDown'. Tôi coi đây là lỗi trong lớp bật lên mặc định. –