分配点击到网格

时间:2013-02-13 09:15:51

标签: c# silverlight windows-phone-7

我尝试将网格添加到点按处理程序:

<Grid x:Name="LayoutRoot" Background="#FF1F1F1F" Tap="OnTap">........</Grid>

并且在InitializeComponent();我得到了这个:

A first chance exception of type 'System.Windows.Markup.XamlParseException' occurred in System.Windows.ni.dll

Failed to assign to property 'System.Windows.UIElement.Tap'. [Line: 14 Position: 58]

    {System.Windows.Markup.XamlParseException: Failed to assign to property 'System.Windows.UIElement.Tap'. [Line: 14 Position: 58]
   at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
   at *.NowPlayingPageControl.InitializeComponent()
   at *.NowPlayingPageControl..ctor()}

2 个答案:

答案 0 :(得分:7)

我有同样的问题,我在XAMl页面中做了什么,其中抛出了XamlParseException我检查了所有tap事件,在其中一个Tap事件处理程序中我发现它没有导航到后面的代码。

休息没问题。所以我检查后面的代码,发现引用.dll时存在歧义。

GestureEventsArgs在以下参考文献中含糊不清。

System.Windows.Input.GestureEventArgsMicrosoft.Phone.Controls.GestureEventArgs

所以我将Microsoft.Phone.Controls.GestureEventArgs替换为System.Windows.Input.GestureEventArgs

现在它的工作正常。我想要指出的一件事是在我安装Toolkit dll之后发生这种情况,否则我的代码在此之前工作正常。正如@haxor已经指出的那样。

答案 1 :(得分:1)

代码隐藏文件中Tap方法的签名是什么?当我遇到这个问题时,我会执行以下操作:

  • 进入XAML的设计师
  • 找到定义了Tap操作的对象
  • 删除包含Tap方法名称
  • 的文本
  • 保存文件
  • 双击该字段,以便设计人员创建新的Tap方法
  • 将新存根方法的签名与旧签名
  • 进行比较
  • 如果存在差异,请在原始方法中修复,然后删除新方法

几乎在所有情况下,我都在方法签名的事件参数部分搞砸了一些事情(最近因为安装了Toolkit)。