Визуальный менеджер состояния на пользовательском элементе управления

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

Я затем использую это в качестве корня моего xaml (помещающий код в шаблонную папку в Смешении)

Все хорошо работает, я могу открыть новый 'DaveControl' и получить функциональность, которую я хочу.

Однако, Если я затем добавляю, делают некоторые визуальные состояния здесь, такие как alertOnScreen и попытка использовать visualstatemanager, это не работает.

заразите нет никаких перечисленных состояний.

Поведение в SL3 GotoVisualState хорошо работает хотя!

Как я могу заставить визуальное состояние работать в коде?

5
задан DavidA 13 January 2010 в 09:38
поделиться

2 ответа

Таким образом, решение следующее: Использовать расширенный визуальный менеджер состояния!

ExtendedVisualStateManager.GoToElementState(this.LayoutRoot as FrameworkElement, "OffScreen", true);

Это работает, так как для этого, помимо прочего, нужен элемент фреймворка. Обходной путь для VisualStateManager.GoToState не работает на Window

7
ответ дан 14 December 2019 в 04:38
поделиться

Добавлен ли набор доступных состояний в виде набора атрибутов TemplateVisualState в классе? Blend использует их для настройки списка доступных состояний.

Ваш класс должен выглядеть следующим образом:-

[TemplateVisualState(Name = "MyGroup1State1", GroupName = "MyGroup1")]
[TemplateVisualState(Name = "MyGroup1State2", GroupName = "MyGroup1")]
[TemplateVisualState(Name = "MyGroup2State1", GroupName = "MyGroup2")]
[TemplateVisualState(Name = "MyGroup2State2", GroupName = "MyGroup2")]
[TemplatePart(...)]
[TemplatePart(...)]
public class MyControl : ContentControl
1
ответ дан 14 December 2019 в 04:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: