Ошибка при попытке привести из System.Double в System.Single - PullRequest
0 голосов
/ 27 сентября 2011

Я уверен, что это окажется чем-то простым.У меня есть следующий код 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, но все еще получил ту же ошибку.Есть идеи?

Ответы [ 2 ]

1 голос
/ 27 сентября 2011

Эти свойства имеют тип double.Вы передаете значения одинарной точности, плавающие.Пройдите удвоение и все будет хорошо.

1 голос
/ 27 сентября 2011

Вы проходите в штучной упаковке, а затем прямоугольник пытается распаковать его в двойное число.Для начала просто передайте двойные числа, и все будет хорошо:

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

Обратите внимание, что Canvas.Left и Canvas.Top имеют тип doubleне float.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...