Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 动态组合矩形_C#_Wpf - Fatal编程技术网

C# 动态组合矩形

C# 动态组合矩形,c#,wpf,C#,Wpf,我正在尝试合并需要动态创建的两个矩形,但我不知道如何使用.Data绘制它们,也不知道如何从窗口.Shapes.Rectangle转换到窗口.Media.Geometry Rectangle Cross1 = new Rectangle(); Cross1.Margin = new Thickness(465, -140, 0, 0); Cross1.Height = 110; Cross1.Width = 15; Cross1.RenderTransform = rotateTransform1

我正在尝试合并需要动态创建的两个矩形,但我不知道如何使用
.Data
绘制它们,也不知道如何从
窗口.Shapes.Rectangle
转换到
窗口.Media.Geometry

Rectangle Cross1 = new Rectangle();
Cross1.Margin = new Thickness(465, -140, 0, 0);
Cross1.Height = 110;
Cross1.Width = 15;
Cross1.RenderTransform = rotateTransform1;

Rectangle Cross2 = new Rectangle();
Cross2.HorizontalAlignment = HorizontalAlignment.Left;
Cross2.VerticalAlignment = VerticalAlignment.Top;
Cross2.Margin = new Thickness(362, -103, 0, 0);
Cross2.Height = 110;
Cross2.Width = 15;
Cross2.RenderTransform = rotateTransform2;

CombinedGeometry c1 = new CombinedGeometry(GeometryCombineMode.Union, Cross1, Cross2);

CombinedGeometry类仅适用于其他System.Windows.Media.Geometry对象,而不适用于System.Windows.Shapes。您需要使用等效的矩形几何体类

例如:

RectangleGeometry Cross1 = new RectangleGeometry(new Rect(0, 0, 15, 110));
Cross1.Transform = rotateTransform1;
RectangleGeometry Cross2 = new RectangleGeometry(new Rect(0, 0, 15, 110));
Cross2.Transform  = rotateTransform2;
CombinedGeometry c1 = new CombinedGeometry(GeometryCombineMode.Union, Cross1, Cross2);