gpt4 book ai didi

c# - 不明确的矩形构造函数

转载 作者:太空宇宙 更新时间:2023-11-03 18:24:02 24 4
gpt4 key购买 nike

关于 System.Windows.Shapes 中的 Rectangle 构造函数的快速问题。我正在尝试使用以下代码创建一个 Rectangle 对象。

Rectangle rect1 = new Rectangle(5,5,5,5);

但是,我收到一条错误消息,指出 Rectangle 构造函数不接受 4 个参数。经过一些广泛的研究,文档提供了几个显式构造函数,例如这两个。

Rectangle(int32,int32, int32, int32);

Rectangle(Point, Size);

我试过同时使用两者,但它都不接受,给出了 Rectangle 类不接受 2 个或 4 个参数的错误。但是,当我不向它传递任何参数时,它工作正常。问题是无法访问 Rectangle 的位置,所以我只能在创建对象后更改宽度和高度,而不能更改位置。

免责声明:

这确实是家庭作业的一部分,但是是一个更大整体中非常非常小的一部分,而且由于我在这个简单的问题上花费了很多时间(所以我假设),因此,我没有任何疑虑关于在这里问。

最佳答案

在评论中反复讨论之后, 才是您真正想要的:Canvas 中的 UI 元素,描绘了一个矩形。

var rect = new System.Windows.Shapes.Rectangle();

// Capital C Canvas: Static methods of System.Windows.Canvas, setting what are
// called "attached properties" in WPF. This is very weird if you're new to WPF, sorry.
Canvas.SetLeft(rect, 5);
Canvas.SetTop(rect, 5);
rect.Height = 5;
rect.Width = 5;

// canvas, lowercase c, is your instance of System.Windows.Canvas
canvas.Children.Add(rect);

对于 WPF,我更喜欢使用 XAML 而不是 C# 来创建 UI 元素:

<Canvas Width="300" Height="300">
<Ellipse
Stroke="DeepSkyBlue"
Width="30"
Height="30"
Canvas.Left="40"
Canvas.Top="40"
/>
<Rectangle
Stroke="Black"
StrokeThickness="1"
Canvas.Left="20"
Canvas.Top="20"
Width="100"
Height="100"
/>
</Canvas>

其他可能的答案,在这种情况下不适用

如果您使用的是 winforms,请改用 System.Drawing.Rectangle。那就是你正在阅读的那个the documentation for (真正阅读文档的荣誉——很少有人这样做)。

您可能需要在项目中添加对 System.Drawing.dll 的引用(在 VS 项目树的引用中)。

在 WPF 中,您可以使用该类,或 System.Windows.Rect .那一个使用 double 浮点值而不是整数。选择适合手头任务的那个。 WPF 中的 UI 内容都是 float ,因此 Rect 可能是最好的。

Shapes 中的那个是另外一回事。

如果 System.Windows.Shapes 在顶部的 using 行中,请尽可能删除它。

但是如果你需要保留它,这在歧义的情况下总是有效的:

var rect = new System.Drawing.Rectangle(5,5,5,5);
var r2 = new System.Windows.Rect(5,5,5,5);

关于c# - 不明确的矩形构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40433469/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com