2013-02-25 39 views
5

Tôi muốn biết làm thế nào để tìm ra khi nào một điều khiển là visbile cho người dùng và khi nào không?Làm thế nào để tìm ra khi nào điều khiển được hiển thị cho người dùng?

Giả sử tôi đang viết điều khiển tùy chỉnh mở rộng TextBox và tôi muốn biết thời điểm hiển thị để thực hiện một số logic tùy chỉnh bên trong trình xử lý được kích hoạt khi hiển thị thay đổi.

Làm như thế nào? Làm thế nào để tìm ra nếu kiểm soát được hiển thị cho người dùng hay không? Điều khiển tùy chỉnh mở rộng TextBox có thể ở bên trong một ví dụ ButtonButton có thể nhận được Visibility.Collapsed vì vậy tất cả các điều khiển lồng nhau bên trong của nó sẽ bị invisibe và đó là những gì tôi muốn biết. Làm thế nào để tìm ra nếu nhìn thấy không có vấn đề gì giá trị cho tài sản Visibility được thiết lập?

Trả lời

9

Bạn nên sử dụng sự kiện UIElement.IsVisibleChanged. Nó xảy ra khi giá trị của các thay đổi IsVisible là thuộc tính phụ thuộc chỉ đọc và cho biết các phần tử Hiển thị trên giao diện người dùng.
UIElement.LayoutUpdated - sự kiện có thể được sử dụng để tính toán lại mức độ hiển thị của các điều khiển.

CẬP NHẬT. Dường như bản sao chính xác:
In WPF, how can I determine whether a control is visible to the user?

+0

Tôi đã chỉnh sửa câu hỏi của mình. Tôi không nói về tài sản Tầm nhìn. Tôi đang nói về khả năng hiển thị nói chung. Btw liên kết của bạn với IsVisibleChanged không hoạt động –

+0

@hedgehog Ok. Bây giờ tôi thấy những gì bạn quan tâm. Đã cập nhật. –

+0

đó chỉ là một phương pháp mà tôi phải gọi một cách rõ ràng để tìm ra nếu có thể nhìn thấy. Tôi muốn được WPF thông báo nếu có thể nhìn thấy hay không. –

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