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
状態は、ユーザーがマウスを離した後、ユーザーが移動を開始する前にのみ存在します。
ところで: カスタム コントロールまたはユーザー コントロールを使用する必要がありますか? この2つについて、私は非常に混乱してきました。どちらも多くの場合に機能するようです。
どうもありがとう。
更新: このMouseButtonUp
状態を追加すると、次のような視覚的な遷移を行うことができます。
<vsm:VisualTransition From="Pressed" To="MouseButtonUp" GeneratedDuration="0:0:5" />
または:
<vsm:VisualTransition From="MouseButtonUp" To="MouseOver" GeneratedDuration="0:0:5" />