Реализация шаблона конечного автомата в WPF

Я работаю над приложением для управления вызовами, которое будет разработано в wpf. Я хочу реализовать шаблон конечного автомата в моем коде С# для следующей цели:

существуют различные состояния, как указано на следующем рисунке.

введите описание изображения здесь, когда вызов находится в состоянии "звонок", и я нажимаю на ответ кнопка, состояние переходит в «Разговор», а кнопка становится отключенной. Пожалуйста, предоставьте мне полезные ссылки/документы, которые мне помогут. Есть ли встроенный класс состояния для реализации этого? Спасибо в рекламе.


person deathrace    schedule 21.12.2011    source источник
comment
Вы уже проводили какие-либо исследования существующих решений/образцов? Пробовали ли вы какой-либо дизайн или реализацию кода?   -  person Samuel Slade    schedule 21.12.2011
comment
да. Я видел несколько вопросов только на этом сайте. а также пройти по ссылке msdn: social.msdn.microsoft.com/search /en-us?query=StateMachine+   -  person deathrace    schedule 21.12.2011


Ответы (3)


VisualStateManager — это то, что разработано специально для обработки визуальных состояний приложения.

вот с чего можно начать: http://msdn.microsoft.com/en-us/library/system.windows.visualstatemanager.aspx

и вот хороший учебник (не требует Blend): http://windowsclient.net/wpf/wpf35/wpf-35sp1-toolkit-visual-state-manager-overview.aspx

вы можете делать много классных вещей, включая анимированные переходы между состояниями и т. д.

Для фактической реализации это имеет мало общего с WPF - я бы предложил посмотреть шаблон состояния (например, http://forum.unity3d.com/threads/38956-Very-Simple-StateMachine-Pattern-C и многие другие).

person Community    schedule 21.12.2011
comment
Спасибо. Я собираюсь попробовать это сейчас. - person deathrace; 22.12.2011

Честно говоря, я думаю, что ваш вопрос должен быть легко решен с небольшим применением знаний и размышлений в области программирования. Однако после быстрого поиска в Google я нашел сообщение в Code Project, в котором представляет очень простую универсальную реализацию конечного автомата на C#. Это может помочь вам найти то, что вам нужно, и внедрить решение, адаптированное к вашей ситуации.

person Samuel Slade    schedule 21.12.2011

Вы можете ознакомиться с рабочим процессом конечного автомата WF4.

person Felice Pollano    schedule 21.12.2011