Я пытаюсь анимировать несколько фигур в визуальной маске, но когда я выполняю поворот формы «пульс». Я предполагаю, что по мере того, как формы вращаются, ограничивающие прямоугольники заставляют проходить макет. Однако, поскольку я использую RenderTransform, я не ожидал, что это вызовет изменения макета.RenderTransform в WPF, вызывающий непредвиденные изменения макета
Этот код иллюстрирует проблему:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="200" Width="200">
<StackPanel>
<Border BorderBrush="Red" BorderThickness="1"
Height="100" Width="100">
<Border.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
<BeginStoryboard>
<Storyboard RepeatBehavior="Forever" >
<DoubleAnimationUsingKeyFrames Storyboard.TargetName="inner_Ellipse"
Storyboard.TargetProperty="(UIElement.RenderTransform).(RotateTransform.Angle)">
<LinearDoubleKeyFrame KeyTime="0:0:3" Value="-360"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
<BeginStoryboard>
<Storyboard RepeatBehavior="Forever" >
<DoubleAnimationUsingKeyFrames Storyboard.TargetName="outer_Ellipse"
Storyboard.TargetProperty="(UIElement.RenderTransform).(RotateTransform.Angle)">
<LinearDoubleKeyFrame KeyTime="0:0:3" Value="360"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Border.Triggers>
<Border.Background>
<VisualBrush Stretch="Uniform">
<VisualBrush.Visual>
<Canvas Width="20" Height="20">
<Ellipse x:Name="outer_Ellipse"
Stroke="Blue" StrokeThickness="1"
Width="20" Height="20"
RenderTransformOrigin="0.5,0.5">
<Ellipse.RenderTransform>
<RotateTransform/>
</Ellipse.RenderTransform>
</Ellipse>
<Ellipse x:Name="inner_Ellipse"
Stroke="Red" StrokeThickness="1"
Width="18" Height="18"
Margin="1,1,0,0"
RenderTransformOrigin="0.5,0.5">
<Ellipse.RenderTransform>
<RotateTransform/>
</Ellipse.RenderTransform>
</Ellipse>
</Canvas>
</VisualBrush.Visual>
</VisualBrush>
</Border.Background>
</Border>
</StackPanel>
Это простой образец гораздо более сложного приложения, в котором я использую Визуальное Кисти для украшения 2d плоскости манипулируют в 3d. Все работает хорошо, пока я не попробую и не анимирую кисти. Я пробовал несколько разных подходов, но всегда, похоже, сталкивался с этой проблемой макета.
Любые предложения оценены.
Благодаря
Роб
Да, я знал, что отключив растяжку установил его, предполагая, что внутреннее содержание не больше, чем объект визуала быть применен. Ваш пример, вероятно, лучше иллюстрирует проблему.Проблема заключается в моем «содержании», потому что кисть исходит из наборов данных, а растяжка - правильное поведение в зависимости от размера оформляемого элемента управления. В принципе, я хочу, чтобы визуал «заклинился» сзади, если в этом случае он превосходит ограничительную рамку границы. благодаря – rjw