2014-10-03 12 views
1

난 뒤에 코드를 입력 Page의 새로운 요소를 만들 수 있습니다,하지만 난 것으로 어린이 유형 UIElement의 요소를 추가 할 Grid 같은 : myGrid.Children.Add(myUIElement);
Children 속성이없고 Content 속성을 설정할 수 없습니다.
어떻게해야합니까?

UPDATE :
이것은 내가 지금까지 가지고있는,하지만 작동하지 않습니다는 윈도우 폰 뒤에 코드에서 생성 유형 페이지의 요소에 아이를 추가 8.1

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()); 

답변

2

PageContent 속성에 하나의 UIElement를 호스팅 할 수 있습니다. 여러 자식을 추가하려면 XAML 에서처럼 여러 자식을 포함하고 레이아웃 할 수있는 패널을 추가하고 요소를 해당 패널에 추가해야합니다.

질문에서 myGrid이라는 그리드에 대해 이야기합니다. 아이템을 추가하고 레이아웃을 myGrid에 입력 한 다음 myGridyourPage.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; 
    } 
} 

InitializeComponent 방법 페이지에서 무엇을 XAML로 만들었습니다.

+0

다음과 같이하면됩니다. Grid newGrid = new Grid(); myPage.Content = newGrid; newGrid.Children.Add (myUIElement); 그렇다면이 방법은 효과가 없습니다. 그렇지 않은 경우 사례를 제공해 주시겠습니까? –

+0

잘못 될 수있는 상황에 대한 더 나은 아이디어를 얻기 위해 수행중인 작업에 대한보다 완전한 예를 제공해야합니다. – madd0

+0

지금까지 내가 결론을 내린 것을 추가했습니다. –