2011-12-21 139 views
2

我想在Silverlight中模擬TouchPoint s。下面的代碼已經引發了一個未處理的異常:Silverlight new TouchPoint()導致程序崩潰

currentTouchPoints[i] = new TouchPoint(); 
currentTouchPoints[i].SetValue(TouchPoint.PositionProperty, 
    new Point(x[i]+100+i*100,y[i]+500)); 

new TouchPoint()第一次調用,使程序崩潰。

+0

究竟哪一行*正在導致崩潰?我很難相信對新TouchPoint()的調用是負責任的。除非'i'超出'currentTouchPoints'數組的範圍。 – ChrisF 2011-12-21 12:29:47

+0

你是什麼意思?拋出什麼異常? – 2011-12-21 13:05:37

+0

新的TouchPoint行導致崩潰。當我調試它調用Application_UnhandledException並沒有任何反應。 – user1102059 2011-12-21 13:24:52

回答

1

我想你可以調用新的TouchPoint(),但是它的TouchDevice無效並且它的所有屬性都是隻讀的,所以它沒用。

我還沒有找到解決方案。

我會創建一個自定義類並使用該類。

例如,如果您使用的是已經在你的代碼的正常接觸點,不想改變一切,導入該自定義空間,而不是System.Windows.Input

namespace MyTouchPoint 
{ 

class TouchPoint 
{ 
public Point Position = new Point (0,0); 
public TouchDevice TouchDevice = new TouchDevice(); 

TouchPoint (int id_, Point position_) 
{ 
    TouchDevice.Id = id_; 
    Position = position_; 
} 
}; 

class TouchDevice 
{ 
public int Id = 0; 
}; 

} // end namespace 

歡呼聲, 洛倫佐

+0

ops中發生類型'System.UnauthorizedAccessException'的第一次機會異常,這在WPF中有效...不在Silverlight – lorenzo 2011-12-21 21:57:31

+0

中但至少指向右側回答 – jclozano 2011-12-21 22:11:38

+0

是的,它應該, 因爲我能夠創建一個接觸點,即使在silverlight使用'新的TouchPoint()' 但這是一個空的(TouchDevice爲空,位置爲0,0),除了所有屬性是隻讀的,所以無法填充它。 – lorenzo 2011-12-21 23:30:59