繁体   English   中英

将子代添加到在Windows Phone 8.1之后的代码中创建的页面类型的元素中

[英]Add Children to element of type Page created in code behind Windows Phone 8.1

我可以在后面的代码中创建Page类型的新元素,但我想像在Grid那样添加UIElement类型的子元素: myGrid.Children.Add(myUIElement);
我没有Children属性,并且设置Content属性无效。
我该如何实现?

更新:
这是我到目前为止的内容,但是不起作用:

Page myNewPage = new Page();
Grid myGrid = new Grid();
TextBlock myText = new TextBlock();
myText.Text = "I am a TextBlock!";
myGrid.Children.Add(myText);
myNewPage.Content = myGrid;

Frame.Navigate(myNewPage.GetType());

Page可以在其Content属性中承载单个UIElement 要添加多个子级,您必须像在XAML中那样进行操作:添加一个可以包含并布局多个子级的面板,然后将元素添加到该面板中。

在您的问题中,您谈论的是一个名为myGrid的网格。 您可以在myGrid添加和布局项目,然后将myGrid设置为yourPage.Content

您的代码正确构建了页面。 代码的问题是您的Frame导航到不是您创建的Page的新实例。 Frame创建您作为参数传递的类型的新实例。

如果要完全用代码创建页面,则可以简单地创建扩展Page类并在其构造函数中构建页面:

public class MyPage : Page
{
    public MyPage()
    {
        this.BuildPage();
    }

    private void BuildPage()
    {
        var panel = new StackPanel();
        panel.Children.Add(new TextBlock { Text = "Hello" });
        panel.Children.Add(new TextBlock { Text = "World" });

        this.Content = panel;
    }
}

毕竟,这就是在XAML中创建的页面中InitializeComponent方法的作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM