簡體   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