我相信这会变得简单。我有以下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,但仍然遇到了同样的错误。有什么想法吗?
答案 0 :(得分:1)
你正在传递一个盒装的浮动,然后矩形试图将它拆箱到一个双。只需要输入双打,就可以了:
r.SetValue(Canvas.LeftProperty, 150d);
r.SetValue(Canvas.TopProperty, 50d);
请注意,Canvas.Left
和Canvas.Top
的类型为double
,而不是float
。
答案 1 :(得分:1)
这些属性的类型为double。您正在传递单精度值浮点数。传球双打,一切都会好的。