У меня есть окно WPF, которое содержит ContentPresenter
, для которого Высота и Ширина по умолчанию установлены в 0.
Когда пользователь нажимает кнопку, я запускаю анимацию, чтобы преобразовать свойства высоты и ширины ContentPresenter в 896,1024 (на самом деле он также выполняет 3 поворота при увеличении), и это все хорошо ...
DataContext для пользовательского элемента управления реализует IDataErrorInfo, и если пользователь не нажимает флажок «Я прочитал и понимаю эти инструкции по охране труда и технике безопасности», то вокруг флажка отображается красная рамка ...
Моя проблема в том, что если пользователь нажимает кнопку «Отмена», и я запускаю анимацию, которая сжимает Высота и Ширина обратно до 0,0, то UserControl сжимается по мере необходимости, но красная граница не исчезает полностью - она оставляет один красный пиксель в середине моего окна
У кого-нибудь есть идеи, что я делаю не так? Я предполагаю, что «красная граница» - это просто Adorner, отображаемый WPF для меня, поэтому я не уверен, как изменить это поведение ...
Вся помощь очень ценится!
Обновление - Я попробовал отличное предложение Эйба, но, к сожалению, оно не сработало, но оно заставило меня попробовать другие вещи ... Так что теперь (временно) я прокомментировал «сокращающиеся» анимации и просто установите видимость Collapsed в KeyTime = "0: 0: 0.9" ... когда я нажимаю кнопку отмены, чуть менее чем через секунду, UserControl исчезает, но красный рекламщик упрямо остается: (
В качестве дополнительного бита информации (не уверен, если уместен?) UserControl, отображаемый в ContentPresenter, также содержит ContentPresenter для визуализации UserControl и его внутреннее содержимое, которое содержит средство проверки правильности ...
пример кода:
<Button
Name="signInButton"
Grid.Row="0" Grid.Column="0"
Margin="30"
HorizontalAlignment="Right" VerticalAlignment="Bottom"
Style="{StaticResource LargeButtonStyle}"
Content="Sign In"
Command="{Binding SignInCommand}">
<Button.Triggers>
<EventTrigger
RoutedEvent="Button.Click">
<BeginStoryboard
Storyboard="{DynamicResource openViewAnimation}" />
</EventTrigger>
</Button.Triggers>
</Button>
<ContentPresenter
Name="mainView"
Grid.RowSpan="2" Grid.ColumnSpan="2"
HorizontalAlignment="Center" VerticalAlignment="Center"
Opacity="0.9"
Content="{Binding CurrentContent}">
<ContentPresenter.RenderTransform>
<RotateTransform
Angle="0" />
</ContentPresenter.RenderTransform>
</ContentPresenter>
<Storyboard x:Key="closeViewAnimation">
<DoubleAnimation
Storyboard.TargetName="mainView" Storyboard.TargetProperty="Height"
From="896" To="0" Duration="0:0:0.9"
AutoReverse="False" RepeatBehavior="1x" />
<DoubleAnimation
Storyboard.TargetName="mainView" Storyboard.TargetProperty="Width"
From="1024" To="0" Duration="0:0:0.9"
AutoReverse="False" RepeatBehavior="1x" />
</Storyboard>
Спасибо, Ян