MouseOver
ではなく、MouseHover
にトリガーを設定する方法があるかどうか疑問に思っていました。MouseHoverでトリガー?
私は、ユーザーが指定した領域にX秒間マウスを置いたまま、マウスオーバーでマウスオーバーすると発生するようにしたいと思います。
MouseOver
ではなく、MouseHover
にトリガーを設定する方法があるかどうか疑問に思っていました。MouseHoverでトリガー?
私は、ユーザーが指定した領域にX秒間マウスを置いたまま、マウスオーバーでマウスオーバーすると発生するようにしたいと思います。
X秒後にIsMouseOver
トリガを開始するには、ストーリーボードを使用してBeginTime
プロパティを設定できる必要があります。マウスが2秒間ホバリングしたときにサイズが50%増加するButton
の例を次に示します。あなたは(時間が設定可能であるため)ツールヒントのような単純なDoubleAnimation
の
<Button Content="Button"
Height="23"
Width="75"
RenderTransformOrigin="0.5 0.5">
<Button.RenderTransform>
<ScaleTransform />
</Button.RenderTransform>
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard BeginTime="00:00:02">
<DoubleAnimation Storyboard.TargetProperty="(Button.RenderTransform).(ScaleTransform.ScaleX)" To="1.5"/>
<DoubleAnimation Storyboard.TargetProperty="(Button.RenderTransform).(ScaleTransform.ScaleY)" To="1.5"/>
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="(Button.RenderTransform).(ScaleTransform.ScaleX)" To="1.0"/>
<DoubleAnimation Storyboard.TargetProperty="(Button.RenderTransform).(ScaleTransform.ScaleY)" To="1.0"/>
</Storyboard>
</BeginStoryboard>
</Trigger.ExitActions>
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
ありがとう、それは正しい方向に私を指摘した。このオブジェクトのサイズに基づいて他のコントロールを調整したいので、スケールの代わりにオブジェクトの高さをアニメーション化しました。私は実際にAttachedPropertyのすべてを持っているので、とても幸せです:) – Rachel
同様の結果を得るために、RenderTransformの代わりに(Control.LayoutTransform)(ScaleTransform.ScaleY)をアニメートすることもできます –
何かのために
Duration="0"
を設定することができ、またはあなたが実際に実際のアクションを必要とする何かをする必要がありますアニメーションの一部をスキップすると/またはトリガー? –
@ワンコ:マウスをX秒間マウスで握ったときにコントロールを拡大したい。残りのコントロールをResizedコントロールのサイズに合わせてサイズ変更したいので、サイズを変更したコントロールをツールヒントに配置するだけではありません。私はツールヒントで何かをハックすることができるかもしれないが、それを考えなかった。 – Rachel