DefiningGeometry
我在 WPF 中有一个自定义形状,它在覆盖中创建两个矩形并返回GeometryGroup
如下:
protected override System.Windows.Media.Geometry DefiningGeometry
{
get
{
System.Windows.Media.GeometryGroup group = null;
System.Windows.Media.RectangleGeometry rectangle = null;
group = new System.Windows.Media.GeometryGroup();
if (this.Rectangle.IsEmpty)
{
group.Children.Add(System.Windows.Media.Geometry.Empty);
}
else
{
rectangle = new System.Windows.Media.RectangleGeometry(new System.Windows.Rect(this.Width * 0.1, this.Height - (this.Height * 0.1), this.Width * 0.8, this.Height * 0.1), 10, this.Height * 0.1);
group.Children.Add(rectangle);
rectangle = new System.Windows.Media.RectangleGeometry(new System.Windows.Rect(this.Width * 0.1, this.Height - (this.Height * 0.1), this.Width * 0.8, this.Height * 0.1), 10, this.Height * 0.1);
rectangle.Transform = new System.Windows.Media.RotateTransform(this.Tilt, this.Width / 2D, this.Height / 2D);
group.Children.Add(rectangle);
}
return (group);
}
}
问题是我只想在第二个矩形上应用一个变换,但是当我如上所示那样做时,它也会变换组中的其他几何图形。
这应该表示一个带有一个静态条和一个旋转的动画(因此是变换)。任何意见将是有益的。
更新:我对两个矩形上发生的旋转变换都错了。旋转只发生在一个上。但是由于这种旋转,画布似乎会平移,因此第一个矩形也会移动(不旋转)。知道这里发生了什么吗?
这是一个动画GIF。等待两个滑块同时上下移动。
这里唯一改变的是this.Tilt
从 -45 到 +45 度的值。