我需要在WPF中通过C#应用多重转换效果。

我在下面尝试了代码,但仅看到了最后一个效果,而没有看到两者。

有什么可能的线索吗?

XAML

<Grid>
   <Rectangle Fill="#FFF4F4F5" Name="rect" HorizontalAlignment="Left" Height="225" Margin="84,39,0,0" Stroke="Black" VerticalAlignment="Top" Width="299"/>
</Grid>

C#
SkewTransform skewTransform1 = new SkewTransform(45, 0, -50, 50);
rect.RenderTransform = skewTransform1;

RotateTransform rotateTransform  = new RotateTransform(30);
rect.RenderTransform = rotateTransform;

最佳答案

您必须将两种效果结合在TransformGroup中,而不是每次都覆盖它们:

var transformGroup = new TransformGroup();
var skewTransform = new SkewTransform(45, 0, -50, 50);
var rotateTransform = new RotateTransform(30);

transformGroup.Children.Add(skewTransform);
transformGroup.Children.Add(rotateTransform);

rect.RenderTransform = transformGroup;

关于c# - WPF中的多重转换效果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14875452/

10-08 23:37