2017-02-02 4 views
1

저는 WPF (C#)에서 기본 응용 프로그램을 만들고 있는데, 여기에서 UserControl을 사용하고 싶습니다. 나는 이미 3 개의 샘플 UserControl과 버튼, 라벨, 패널 등이있는 단일 페이지 윈도우를 만들었습니다. 클릭 버튼에 각 UserControl을로드하려고했습니다. 아래에서 내 논리 (코드)를 볼 수 있습니다. -하나의 패널 (DockPanel) 내에서 클릭 할 때 usercontrol을 표시하도록 구현하는 방법은 무엇입니까?

public partial class Dashboard : Window 
{ 
    public Dashboard() 
    { 
     InitializeComponent(); 
    } 

    private void btn1_Click(object sender, RoutedEventArgs e) 
    { 

     Dock_MainPanel.Controls.Clear(); 
     Dock_MainPanel.Visible = true; 
     Sample1 usr1 = new Sample1(); 
     usr1.Show(); 
     Dock_MainPanel.Controls.Add(usr1); 
    } 

    private void btn2_Click(object sender, RoutedEventArgs e) 
    { 
     //SAMPLE CODE 
    } 
} 

이제이 코드가 작동하지 않습니다. 오류가 발생했습니다. 다음과 같이 이미지에 표시됩니다 -

Error shown in image

는 기본적으로 I는 해당 버튼을 클릭하면 각 UserControl을로드하고 싶었다. 다른 솔루션을 가진 사람이라면 환영합니다.

답변

1

@Stefan W. 당신이 몇 가지 요소를 추가하려는 경우 당신이 DockPanel의 어린이 컬렉션에 UserControl의 인스턴스를 추가해야하지만 알 수 있듯이 DockPanelDockPanel에 요소가 위치 할 곳을 지정하여 요소의 Dock 속성을 설정하는 것이 좋습니다. DockPanel.SetDock 메서드를 사용하여이 작업을 수행 할 수 있습니다. 또한 DockPanel을 표시하려면 VisibilityVisibility.Visible으로 설정하십시오. 사용해보기 :

private void btn1_Click(object sender, RoutedEventArgs e) 
{ 
    Dock_MainPanel.Children.Clear(); 
    Dock_MainPanel.Visibility = Visibility.Visible; 
    Sample1 usr1 = new Sample1(); 
    DockPanel.SetDock(usr1, Dock.Right); 
    Dock_MainPanel.Children.Add(usr1); 
} 
1

당신은 DockPanel에서 '어린이'모음에 액세스해야

Dock_MainPanel.Children.Clear(); 

    Dock_MainPanel.Children.Add(usr1);