1
두 번 클릭 할 때 줌인하고 싶으면 사용자 콘트롤이 있습니다. 그럴 경우 두 번 클릭하면 축소됩니다. 난 뒤에 코드와 함께 작동하도록 할 수 있지만 xaml에서 작동하도록 할 수는 없다. 핸들의 더블 클릭 이벤트 뒤에있는 코드는 다음과 같습니다. 다음 내 XAML에서트리거 애니메이션
void MyObjectMouseDoubleClick(object sender, MouseButtonEventArgs e)
{
if (IsZoomedIn)
{
IsZoomedIn = false;
//ZoomOutAnimation();
}
else
{
IsZoomedIn = true;
//ZoomInAnimation();
}
}
는 :
<UserControl.RenderTransform>
<TransformGroup>
<RotateTransform />
<ScaleTransform />
<TranslateTransform />
</TransformGroup>
</UserControl.RenderTransform>
<UserControl.Style>
<Style>
<Style.Triggers>
<Trigger Property="local:MyObject.IsZoomedIn" Value="False">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="(UserControl.
RenderTransform).(TransformGroup.Children)[1].
(ScaleTransform.ScaleX)" To="1" Duration="0:0:.3" />
<DoubleAnimation Storyboard.TargetProperty="(UserControl.
RenderTransform).(TransformGroup.Children)[1].
(ScaleTransform.ScaleY)" To="1" Duration="0:0:.3" />
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
</Trigger>
<Trigger Property="local:MyObject.IsZoomedIn" Value="True">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="(UserControl.
RenderTransform).(TransformGroup.Children)[1].
(ScaleTransform.ScaleX)" To="2" Duration="0:0:.3" />
<DoubleAnimation Storyboard.TargetProperty="(UserControl.
RenderTransform).(TransformGroup.Children)[1].
(ScaleTransform.ScaleY)" To="2" Duration="0:0:.3" />
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
</Trigger>
</Style.Triggers>
</Style>
</UserControl.Style>
내 UserControl을으로 확대되면 축소 애니메이션이 작동하지 않습니다. 어떤 도움을 주셔서 감사합니다.
감사합니다.
감사! 하지만 여전히 코드가 작동하는 이유를 이해하지 못합니다. EnterActions가 "사실"이고 ExitActions가 "기타"와 더 비슷하기 때문에이 방법으로 생각하는 것이 "옳은"것이 아니라는 것을 알고 있습니다.
감사합니다. – jkidv
EnterActions 및 ExitActions는 Initialize 및 Dispose와 유사하고 if/else와 유사합니다. 트리거의 순서로 인해 * 발생하는 것으로 보이는데, 이유는 무엇 때문에 서로에게 전달할 수 없으며 스토리 보드는 우선 순위가 높기 때문에 UI에서 값을 강제합니다. 스토리 보드를 사용하여 스토리 보드를 사용하여 왜 작동하지 않는지에 대해 명확하게 논평 할 수는 없지만 단일 트리거로 이동하거나 종료 조치에서 각 스토리 보드를 명시 적으로 중지하면 해결됩니다. http://msdn.microsoft.com/en-us/library/ms743230.aspx – rmoore