Я пытаюсь создать шаблонный / пользовательский элемент управления в Silverlight.
Базовое управление может быть System.Windows.Controls.Button
. Кнопка имеет следующие визуальные состояния:
<vsm:VisualStateManager.VisualStateGroups>
<!--Define the states for the common states. The states in a
VisualStateGroup are mutually exclusive to each other.-->
<vsm:VisualStateGroup x:Name="CommonStates">
<!--Define the VisualStates in this VistualStateGroup.-->
<vsm:VisualState x:Name="Normal"/>
<vsm:VisualState x:Name="MouseOver" />
<vsm:VisualState x:Name="Pressed" />
<vsm:VisualState x:Name="Disabled" />
</vsm:VisualStateGroup>
<!--Define the states for the focus states. The states in a
VisualStateGroup are mutually exclusive to each other.-->
<vsm:VisualStateGroup x:Name="FocusStates">
<!--Define the VisualStates in this VistualStateGroup.-->
<vsm:VisualState x:Name="Focused" />
<vsm:VisualState x:Name="Unfocused" />
</vsm:VisualStateGroup>
</vsm:VisualStateManager.VisualStateGroups>
Мой пользовательский элемент управления требует другого состояния, MouseButtonUp
(MouseButtonDown
может быть представлено предопределенным состоянием Pressed
). Здесь состояние MouseButtonUp
будет интерпретироваться как состояние MouseOver
по умолчанию, но я хочу состояние MouseButtonUp
ведет себя иначе, чем MouseOver
состояние.
Как я могу добавить это MouseButtonUp
визуальное состояние? (MouseButtonUp
Состояния существуют только после того, как пользователь отпустит мышь и до того, как пользователь начнет двигаться.
Кстати: я должен использовать пользовательский контроль или пользовательский контроль? Я был очень смущен этими двумя. Кажется, что они оба будут работать во многих случаях.
Большое спасибо.
ОБНОВЛЕНИЕ: Как только мы добавили это состояние MouseButtonUp
, я мог бы сделать визуальные переходы, такие как:
<vsm:VisualTransition From="Pressed" To="MouseButtonUp" GeneratedDuration="0:0:5" />
Или:
<vsm:VisualTransition From="MouseButtonUp" To="MouseOver" GeneratedDuration="0:0:5" />