无法将类型 'Windows.UI.Xaml.Controls.Canvas' 的对象转换为类型 'Canvas'
Unable to cast object of type 'Windows.UI.Xaml.Controls.Canvas' to type 'Canvas'
我有一个 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);
}
错误得到以下错误:
An exception of type 'System.InvalidCastException' occurred in
gotqn.exe but was not handled in user code
Additional information: Unable to cast object of type
'Windows.UI.Xaml.Controls.Canvas' to type 'gotqn.Canvas'.
为什么 ((Canvas)sender).Name.ToString();
会产生这样的错误?是否有其他方式获取名称?
您似乎在不同的命名空间中有两个 Canvas class。我猜想 Windows.UI.Xaml.Controls
命名空间不在您的 using
中,因此代码假定为 gotqn.Canvas
。您是否声明了自己的 Canvas class?如果是,您可能需要指定您想要的 Canvas class
的全名
string name = ((Windows.UI.Xaml.Controls.Canvas)sender).Name.ToString();
我有一个 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);
}
错误得到以下错误:
An exception of type 'System.InvalidCastException' occurred in gotqn.exe but was not handled in user code
Additional information: Unable to cast object of type 'Windows.UI.Xaml.Controls.Canvas' to type 'gotqn.Canvas'.
为什么 ((Canvas)sender).Name.ToString();
会产生这样的错误?是否有其他方式获取名称?
您似乎在不同的命名空间中有两个 Canvas class。我猜想 Windows.UI.Xaml.Controls
命名空间不在您的 using
中,因此代码假定为 gotqn.Canvas
。您是否声明了自己的 Canvas class?如果是,您可能需要指定您想要的 Canvas class
string name = ((Windows.UI.Xaml.Controls.Canvas)sender).Name.ToString();