MouseHover
에 방아쇠를 설치하는 방법이 있다면 MouseOver
이 아닌지 궁금합니다.MouseHover에서 트리거 하시겠습니까?
사용자가 MouseOver를 지나치는 대신 X 초 동안 마우스를 지정된 영역 위로 계속 움직이면 동작이 발생합니다.
MouseHover
에 방아쇠를 설치하는 방법이 있다면 MouseOver
이 아닌지 궁금합니다.MouseHover에서 트리거 하시겠습니까?
사용자가 MouseOver를 지나치는 대신 X 초 동안 마우스를 지정된 영역 위로 계속 움직이면 동작이 발생합니다.
X 초 후에 IsMouseOver
트리거를 시작하려면 Storybard를 사용하고 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"
을 설정할 수 있습니다 애니메이션 부분을 건너 뛰고, 또는 당신이 실제로 할 실제 작업을 필요로 뭔가를 할 필요가 있고/또는 트리거? –@Wonko : 마우스를 X 초 동안 마우스로 가리키면 컨트롤을 확대하고 싶습니다. 나머지 컨트롤은 Resized 컨트롤의 크기에 따라 크기를 조정하기를 원하므로 크기 조정 컨트롤을 ToolTip에 넣을 수는 없습니다. 나는 생각하지 못했지만 툴팁으로 뭔가 해킹 할 수 있을지도 모른다. – Rachel