尝试从 System.Double 转换为 System.Single 时出错

发布于 2024-12-06 18:46:23 字数 576 浏览 0 评论 0 原文

我相信这会变得很简单。我有以下 Silverlight 4 C# 代码:

Rectangle r = new Rectangle();
r.Stroke = new SolidColorBrush(Color.FromArgb(255, 255, 255, 255));
r.SetValue(Canvas.LeftProperty, 150f);
r.SetValue(Canvas.TopProperty, 50f);
r.Width = 100;
r.Height = 100;

LayoutRoot.Children.Add(r);

由于某种原因,当我运行应用程序时,它在 SetValue 行上出现错误。我收到的错误是:

Uncaught Error: Unhandled Error in Silverlight Application DependencyProperty of type System.Double cannot be set on an object of type System.Single.

我尝试隐式转换为 Single,但仍然遇到相同的错误。有什么想法吗?

I am sure this will turn out to be something simple. I have the following Silverlight 4 C# code:

Rectangle r = new Rectangle();
r.Stroke = new SolidColorBrush(Color.FromArgb(255, 255, 255, 255));
r.SetValue(Canvas.LeftProperty, 150f);
r.SetValue(Canvas.TopProperty, 50f);
r.Width = 100;
r.Height = 100;

LayoutRoot.Children.Add(r);

For some reason, when I run my application, it is getting an error on the SetValue lines. The error I am getting is:

Uncaught Error: Unhandled Error in Silverlight Application DependencyProperty of type System.Double cannot be set on an object of type System.Single.

I tried to cast implicitly to Single, but still got the same error. Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

放手` 2024-12-13 18:46:24

您传入一个装箱的浮点型,然后矩形尝试将其拆箱为双精度型。只需传入双精度数即可,应该没问题:

r.SetValue(Canvas.LeftProperty, 150d);
r.SetValue(Canvas.TopProperty, 50d);

请注意 Canvas.LeftCanvas.Top 的类型为 double,而不是 float

You're passing in a boxed float, and the rectangle is then trying to unbox it to a double. Just pass in doubles to start with, and it should be fine:

r.SetValue(Canvas.LeftProperty, 150d);
r.SetValue(Canvas.TopProperty, 50d);

Note that Canvas.Left and Canvas.Top are of type double, not float.

乖乖公主 2024-12-13 18:46:24

这些属性的类型为 double。您正在传递单精度值、浮点数。通过双打,一切都会好起来的。

These properties have type double. You are passing single precision values, floats. Pass doubles and all will be well.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文