2011-12-21 138 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