在c#中使用显式类型转换

本文关键字:类型转换 | 更新日期: 2023-09-27 18:15:54

我试图使用Visual studio 2013开发一个Silverlight应用程序。我是这方面的初学者。我在下面的代码中有一个隐式类型转换。

private void Application_Startup(object sender, StartupEventArgs e)
{
    Page p = new Page();
    this.RootVisual = p;
    // This assumes that Page.LayoutRoot exists and is a StackPanel.
    StackPanel layoutRoot = p.LayoutRoot;
    // Display the custom initialization parameters.
    foreach (String key in e.InitParams.Keys)
    {
           layoutRoot.Children.Add(new TextBlock()
        {
            Text = String.Format(
                "from InitParams: {0} = {1}", key,
                e.InitParams[key])
        });
    }
    // Display the URL parameters.
    foreach (String key in HtmlPage.Document.QueryString.Keys)
    {
        layoutRoot.Children.Add(new TextBlock()
        {
            Text = String.Format(
                "from QueryString: {0} = {1}", key,
                HtmlPage.Document.QueryString[key])
        });
    }

当我编译代码时,我得到错误

 " Error    1    Cannot implicitly convert type 'System.Windows.Controls.Grid' to 'System.Windows.Controls.StackPanel' 

我如何使这个显式函数?

在c#中使用显式类型转换

打开文件Page.xaml,找到x:Name为"LayoutRoot"的Grid,并将其替换为StackPanel(具有相同的x:Name)