无法将"Windows.UI.Xaml.Controls.Canvas"类型的对象强制转换为"Canvas"类型

got*_*tqn 1 c# wpf canvas windows-runtime windows-phone-8.1

我有一个,canvas并希望得到它的名字Tapped.所以,我有这个XAML:

<Canvas Name="drawLine" ... >
...
</Canvas>
Run Code Online (Sandbox Code Playgroud)

这个函数绑定Tapped事件:

private void ChangePage(object sender, TappedRoutedEventArgs e)
{
     string name = ((Canvas)sender).Name.ToString();
     Frame.Navigate(typeof(Params), name);
}
Run Code Online (Sandbox Code Playgroud)

bug得到以下错误:

gotqn.exe中发生类型为"System.InvalidCastException"的异常,但未在用户代码中处理

附加信息:无法将类型为"Windows.UI.Xaml.Controls.Canvas"的对象强制转换为"gotqn.Canvas".

为什么((Canvas)sender).Name.ToString();会产生这样的错误?有没有其他方法来获得这个名字?

cod*_*biz 5

看来你在不同的命名空间中有两个Canvas类.我想Windows.UI.Xaml.Controls命名空间不在您using的代码中gotqn.Canvas.你宣布自己的Canvas类了吗?如果是,您可能必须指定所需的Canvas类的全名

string name = ((Windows.UI.Xaml.Controls.Canvas)sender).Name.ToString();
Run Code Online (Sandbox Code Playgroud)