Событие WPF canvas VisibilityChanged - PullRequest
6 голосов
/ 09 июля 2011

Я хочу настроить событие для запуска при изменении видимости элемента управления WPF Canvas.

canvas1.VisibileChanged += new EventHandler(canvas1_VisibleChanged);

Я пробовал описанное выше, но оно не работает, никто не знает, как это сделать?

Приветствия

Ответы [ 2 ]

21 голосов
/ 09 июля 2011

UIElement.IsVisibleChanged

Вы ищете событие IsVisibleChanged, которое применяется ко ВСЕМ UIElements.


Дополнительная информация: IsVisible являетсяСвойство зависимости только для чтения.Это вычисляемое значение, и свойство зависимостей видимости влияет на него.Это то, что вы должны использовать, чтобы определить, виден ли ваш элемент UIElement или нет.Теперь, если вы действительно хотите проверить изменение Visibility DP по какой-либо причине, есть способ сделать это: http://agsmith.wordpress.com/2008/04/07/propertydescriptor-addvaluechanged-alternative/

Хотя, я бы все равно продолжал просто отслеживать IsVisibleChanged.

1 голос
/ 09 июля 2011

Обычный объект Canvas WPF не имеет события .VisibleChanged, поэтому вы не можете назначить ему обработчик событий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...