Я использую раскадровку WPF, чтобы сдвинуть окно из правого угла экрана и затем скрыть его снова.
У меня три проблемы:
- Если вы ловите окно, которое в данный момент скользит вправо, оно замедляется.
- Иногда (очень редко, поэтому трудно найти причину) окно только скрывает свою половину, и анимация останавливается. Если вы войдете в окно мышью и снова уйдете, оно скрывает все остальное.
- Иногда, когда я достигаю края экрана, чтобы показать окно, какое-то время ничего не происходит, а затем окно очень быстро перемещается в правильное положение.
MouseOnEdge - это мое пользовательское событие, которое запускается, когда мышь достигает правого угла экрана.
Это мой код XAML:
<local:CustomWindow.Triggers>
<EventTrigger RoutedEvent="local:CustomWindow.CustomMouseLeave">
<BeginStoryboard>
<Storyboard Name="SlideWindowOff">
<DoubleAnimation
Storyboard.TargetName="ShellViewWindow" Storyboard.TargetProperty="Left"
Duration="0:0:0.75"
AccelerationRatio="0.5"
From="{Binding WindowLeft}"
To="{Binding WindowLeftHidden}"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="local:CustomWindow.MouseOnEdge">
<BeginStoryboard>
<Storyboard Name="SlideWindowOn">
<DoubleAnimation
Storyboard.TargetName="ShellViewWindow" Storyboard.TargetProperty="Left"
Duration="0:0:0.75"
AccelerationRatio="0.5"
From="{Binding WindowLeft}"
To="{Binding WindowLeftUnhidden}"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</local:CustomWindow.Triggers>
Почему что-то подобное происходит? Основная проблема здесь в том, что раскадровка скрывает только половину окна, и это будет самой большой проблемой для пользователей.