3
현재 버튼을 두 드릴 때 두 개의 다른 애니메이션을 호출해야하는 Surface 애플리케이션에서 작업하고 있습니다.동일한 클릭 이벤트에서 두 개의 다른 애니메이션 호출하기
정확히 어떻게해야합니까? 가능하다면 선언적으로하고 싶습니다. 멀티 트리거를 사용해야합니까?
미리 감사드립니다.
현재 버튼을 두 드릴 때 두 개의 다른 애니메이션을 호출해야하는 Surface 애플리케이션에서 작업하고 있습니다.동일한 클릭 이벤트에서 두 개의 다른 애니메이션 호출하기
정확히 어떻게해야합니까? 가능하다면 선언적으로하고 싶습니다. 멀티 트리거를 사용해야합니까?
미리 감사드립니다.
EventTrigger를 사용하여이 작업을 수행 할 수 있습니다.
단추와 애니메이션 대상의 컨테이너의 FrameworkElement.Triggers 속성에서 트리거를 정의 할 수 있습니다. 당신의 목표에 상대 경로가있는 경우
<StackPanel
Orientation="Horizontal">
<StackPanel.Triggers>
<EventTrigger
SourceName="TheButton"
RoutedEvent="Button.Click">
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetName="LimeRect"
Storyboard.TargetProperty="Fill.Color"
To="Red" />
<ColorAnimation
Storyboard.TargetName="RedRect"
Storyboard.TargetProperty="Fill.Color"
To="Lime" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</StackPanel.Triggers>
<Button
x:Name="TheButton"
Content="Play" />
<Rectangle
x:Name="LimeRect"
Fill="Lime"
Width="50"
Height="50" />
<Rectangle
x:Name="RedRect"
Fill="Red"
Width="50"
Height="50" />
</StackPanel>
, 당신은 Storyboard.TargetName="TargetName"
대신 Storyboard.Target="{Binding PathToTarget}"
를 사용할 수 있습니다.
편집 : 버튼 자체를 애니메이션하는 경우 오른쪽 버튼으로 트리거를 넣을 수 있습니다,
(주석 참조) 어떤 대상의 이름이 필요하지 않습니다.
예 - ToggleButton의 크기를 애니메이션은 :
<ToggleButton
Content="Toggle"
Width="50"
Height="50">
<ToggleButton.Triggers>
<EventTrigger
RoutedEvent="ToggleButton.Checked">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Duration="00:00:00.2"
Storyboard.TargetProperty="Width"
To="100" />
<DoubleAnimation
Duration="00:00:00.2"
Storyboard.TargetProperty="Height"
To="100" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger
RoutedEvent="ToggleButton.Unchecked">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Duration="00:00:00.2"
Storyboard.TargetProperty="Width"
To="50" />
<DoubleAnimation
Duration="00:00:00.2"
Storyboard.TargetProperty="Height"
To="50" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</ToggleButton.Triggers>
</ToggleButton>
omsdsmr 이봐, 당신의 대답에 대한 감사는 크게 감사합니다 :)! 무슨 뜻인지 알지만이 경우 애니메이션 자체가 필요한 단추입니다. 클릭하면 큰 크기가되고, 다시 클릭하면 정상 크기로 되돌아갑니다. – bomortensen
아 ... 운이 좋으면 원하는 것보다 실제로 생각보다 쉽습니다. 내 대답을 다른 예제로 업데이트했습니다. 행운을 빌어 요. –
omdsmr : 나는 그것이 내가 찾고있는 것일지도 모른다라고 생각한다. 내가 내일 사무실에 도착했을 때 그것을 시험해보고 나는 그것을 어떻게 작동시키는 지 알려줄 것이다. 도와 주셔서 정말로 고맙습니다! – bomortensen