尝试从 System.Double 转换为 System.Single 时出错
我相信这会变得很简单。我有以下 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,但仍然遇到相同的错误。有什么想法吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您传入一个装箱的浮点型,然后矩形尝试将其拆箱为双精度型。只需传入双精度数即可,应该没问题:
请注意
Canvas.Left
和Canvas.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:
Note that
Canvas.Left
andCanvas.Top
are of typedouble
, notfloat
.这些属性的类型为 double。您正在传递单精度值、浮点数。通过双打,一切都会好起来的。
These properties have type double. You are passing single precision values, floats. Pass doubles and all will be well.