2011-09-26 69 views
0

我相信這會變得簡單。我有以下的Silverlight 4的C#代碼:嘗試從System.Double轉換爲System.Single時出錯

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. 

我試圖隱式轉換爲單,但仍然有相同的錯誤。有任何想法嗎?

回答

1

你正在傳遞一個盒裝浮點數,然後這個矩形會試圖將它解開到一個double。只是通過在雙打開始,它應該是罰款:

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

注意Canvas.LeftCanvas.Top是類型double,不float的。

+0

喬恩,謝謝你的收穫。出於某種原因,這個前綴正好在我頭上。甚至沒有注意到我正在漂浮它。這個解決方案爲我工作。謝謝! – Icemanind

+0

@kyle在15分鐘過後才能接受 –

1

這些屬性有double類型。你正在傳遞單精度值,浮點數。通過雙打,一切都會好的。

相關問題