Wpf Geometry.Transform属性可以是TransformCollection吗?

时间:2017-10-14 17:03:15

标签: c# .net wpf vb.net

Here写道:

  

物业价值

     

变换

     

应用于几何的转换。   请注意,此值可能是单个Transform或a   TransformCollection转换为Transform。

但是我的代码出错:

    myGeometry.Transform = (Transform)new TransformCollection(new Transform[] {
        new TranslateTransform(33, 22),
        new ScaleTransform(2, 1)
    });
  

无法转换类型' System.Windows.Media.TransformCollection'到' System.Windows.Media.Transform'

有人有解释吗?也许我错了?

1 个答案:

答案 0 :(得分:1)

TransformCollection不是Transform的派生类型,也没有显式运算符将其转换为Transform类型。你应该这样做:

myGeometry.Transform = new TransformGroup
{
    Children = new TransformCollection
    {
        new TranslateTransform(33, 22),
        new ScaleTransform(2, 1)
    }
};

或更简单,根本不创建新的TransformCollection实例:

var transform = new TransformGroup();
transform.Children.Add(new TranslateTransform(33, 22));
transform.Children.Add(new ScaleTransform(2, 1));
myGeometry.Transform = transform;