2017-02-02 11 views
1

私はUserControlを使用したいWPF(C#)で基本的なアプリケーションを作成しています。私はすでに3つのサンプルUserControlと、ボタン、ラベル、パネルなどを持つ単一のページウィンドウを作成しました。私はクリックボタンに各UserControlをロードしたかったのです。あなたは私のロジック(コード)を見ることができます -1つのパネル(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

- 以下のように画像に示されています。他の解決策を持っている人なら、それは歓迎されます。

答えて

1

を「子供のコレクションにアクセスする必要があります同じDockPanelの場合、DockPanelの要素の位置を指定するために、使用している要素の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

@Stefan W.あなたがDockPanelのChildrenコレクションにUserControlのインスタンスを追加する必要がありますが、あなたはいくつかの要素を追加する場合を示しているとして、あなたは、DockPanel

Dock_MainPanel.Children.Clear(); 

    Dock_MainPanel.Children.Add(usr1); 
関連する問題