2010-01-14 5 views
13

Как программно получить текущее визуальное состояние элемента WPF FrameworkElement? И я имею в виду состояния государства, как «нормальный», «MouseOver», «Disabled» и т.д.Как программно получить текущее визуальное состояние элемента WPF FrameworkElement?

EDIT: В принципе, я изменяющийся визуальное состояние кнопки с VisualStateManager.GoToState(e, "MouseOver", true);, и я хочу знать, что состояние вернуть его обратно после того, как я закончу.

ответ

2

Я думаю, что вам нужно знать/запомнить состояние кнопки самостоятельно. VSM просто отображает состояние, в котором кнопка находится на GoToState.

Редактировать: Я только что нашел статью о том, как создать custom VSM, который запоминает состояния управления.

+2

Ваша ссылка сгнила. – JohnFx

0

Я думаю, вам следует использовать метод GoToElementState вместо метода GoToState.

VisualStateManager.GoToElementState(LayoutRoot, "Add", true); 
+0

Странно, я даже не вижу этот метод. Конечно, я использую VisualStateManager из инструментария WPF для .NET 3.5, поэтому он может отличаться от встроенного в .NET 4.0 или Silverlight. – jpierson

0

Я чувствую, что вы пропустили точку WPF здесь, это вид не Модель. Нельзя сохранять состояние в представлении. Сохраните состояние в своей модели (-ях) и используйте представление для его представления. На этой основе вам не нужно читать состояние представления, вы уже это знаете.

Я знаю, что это может показаться большой работой на данный момент, но это вернет вам пики позже.

Смежные вопросы