答案是这样的,C#比以XAML为主。
向ScaleTransform和Slider提供名称以在代码中处理它们。 没有数据绑定。
<Canvas x:Name="root" Margin="20 20" RenderTransformOrigin="0,0" >
<Canvas.RenderTransform>
<TransformGroup>
<!--ScaleX="{Binding ElementName=sliderScale, Path=Value}" ScaleY="{Binding ElementName=sliderScale, Path=Value}"-->
<ScaleTransform x:Name="scaleTransform" />
</TransformGroup>
</Canvas.RenderTransform>
<Rectangle Fill="Red" Stroke="Black" Width="200" Height="200"/>
<Rectangle Canvas.Top="20" Canvas.Left="20" Stroke="Black" Fill="Green" Width="100" Height="100"/>
</Canvas>
<Slider x:Name="sliderScale"
ValueChanged="SliderScaleValueChanged"
Canvas.Left="35" Canvas.Top="251" Height="25" Width="273" Value="1" Maximum="2" Margin="74,249,170,45"/>
一个的ValueChanged回调改变画布上的尺度变换拿着矩形:
private void SliderScaleValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
scaleTransform.ScaleX =
scaleTransform.ScaleY = sliderScale.Value;
}
随着第一XAML的答案,而第二多个C#面向的答案,你应该至少有一个答案满足;-)
关注
谢谢Emmanuel。所以我现在在Canvas上动画(放大)。而且我将2个rects(或图像)放在画布内,然后在代码中放大画布的动画。因此,在XAML中,我没有使用,而是在我的c sharp代码中创建了'Rectangle rect1 = new Rectangle()'。这应该等同于你在xaml代码中所做的性能,对吧? –
wildcolor