2013-02-25 6 views
5

Ich möchte wissen, wie man herausfinden kann, wenn eine Kontrolle für den Benutzer sichtbar ist und wann nicht?Wie herauszufinden, wenn die Kontrolle für den Benutzer sichtbar ist?

Lassen Sie mich sagen, ich schreibe ein benutzerdefiniertes Steuerelement, das eine TextBox erweitert und ich würde gerne wissen, wenn sichtbar ist, einige benutzerdefinierte Logik innerhalb der Handler auf sichtbare sichtbar geändert geändert.

Wie geht das? Wie finde ich heraus, ob das Steuerelement für den Benutzer sichtbar ist oder nicht? Das benutzerdefinierte Steuerelement, das eine TextBox erweitert, könnte in einem Button zum Beispiel sein und Button könnte Visibility.Collapsed erhalten, so dass alle seine inneren verschachtelten Steuerelemente invisibe sein würden und das ist, was ich wissen will. Wie kann man herausfinden, ob sichtbar ist, egal welcher Wert für die Visibility-Eigenschaft gesetzt ist?

Antwort

9

Sie sollten UIElement.IsVisibleChanged Ereignis verwenden. Es tritt auf, wenn der Wert von IsVisible die schreibgeschützte Abhängigkeitseigenschaft ändert und die Sichtbarkeit von Elementen auf der Benutzeroberfläche angibt.
UIElement.LayoutUpdated - Ereignis, das zur Neuberechnung der Sichtbarkeit der Steuerelemente verwendet werden kann.

UPDATE. Scheint, wie es exaktes Duplikat ist:
In WPF, how can I determine whether a control is visible to the user?

+0

ich meine Frage bearbeitet. Ich spreche nicht über Sichtbarkeit Eigentum. Ich spreche von Sichtbarkeit im Allgemeinen. Btw Ihre Verbindung zu IsVisibleChanged funktioniert nicht –

+0

@hedgehog Ok. Jetzt sehe ich, was du machst. Aktualisiert. –

+0

das ist nur eine Methode, die ich explizit aufrufen muss, um herauszufinden, ob sichtbar. Ich möchte von WPF benachrichtigt werden, wenn sichtbar ist oder nicht. –

Verwandte Themen