Unable to cast object of type 'Windows.UI.Xaml.Controls.

本文关键字:Windows UI Xaml Controls cast to object of type Unable | 更新日期: 2023-09-27 17:52:11

我有一个canvas,当它是Tapped时想要得到它的名字。所以我有这个XAML:

<Canvas Name="drawLine" ... >
...
</Canvas>

和此函数绑定在Tapped事件上:

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

bug得到以下错误:

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

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

使用Canvas'来输入'gotqn.Canvas'。

为什么((Canvas)sender).Name.ToString();会产生这样的错误?还有别的办法知道他的名字吗?

Unable to cast object of type 'Windows.UI.Xaml.Controls.

看起来您在不同的命名空间中有两个Canvas类。我猜Windows.UI.Xaml.Controls名称空间不在您的using中,因此代码假设gotqn.Canvas。您是否声明了自己的Canvas类?如果是,你可能需要指定你想要的Canvas类的全名

string name = ((Windows.UI.Xaml.Controls.Canvas)sender).Name.ToString();