2012-12-02 30 views
3

我現在正在寫一個WPF應用程序,並試圖記住我很久以前做過的事情。 我想要一個帶有4個按鈕的窗口,我將通過應用程序與他們導航。在主窗口中的網格中打開用戶控件 - WPF

我的代碼:

<Grid> 
    <Grid> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="Auto"/> 
      <ColumnDefinition Width="Auto"/> 
      <ColumnDefinition Width="55*"/> 
      <ColumnDefinition Width="453*"/> 
     </Grid.ColumnDefinitions> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="Auto"/> 
      <RowDefinition/> 
      <RowDefinition Height="Auto"/> 
     </Grid.RowDefinitions> 
     <StatusBar Margin="0" VerticalAlignment="Top" Height="23" Grid.ColumnSpan="4" Grid.Row="2" Background="#FF1A202C"/> 
     <Menu Margin="0" Height="23" Grid.ColumnSpan="4" Background="#FF1A202C" /> 
     <StackPanel Grid.Row="1" Width="224.2" HorizontalAlignment="Left" Background="#FF1F7872" > 
      <Button Content="Dashboard" Style="{StaticResource BorderlessButton}" Foreground="#FFF1E7E7" Template="{DynamicResource GlassButton}" Margin="25,20,23,20" Click="Button_Click_1" /> 
      <Button Content="Components" Style="{StaticResource BorderlessButton}" Foreground="#FFF1E7E7" Template="{DynamicResource GlassButton}" Margin="25,20,23,20"/> 
      <Button Content="TimeLine" Style="{StaticResource BorderlessButton}" Foreground="#FFF1E7E7" Template="{DynamicResource GlassButton}" Margin="25,20,23,20"/> 
      <Button Content="Drilldown" Style="{StaticResource BorderlessButton}" Foreground="#FFF1E7E7" Template="{DynamicResource GlassButton}" Margin="25,20,23,20"/> 
     </StackPanel> 
     <Grid Grid.Column="2" Grid.Row="1" HorizontalAlignment="Stretch" Grid.ColumnSpan="2" Background="#FF72B095"> 

     </Grid>  
    </Grid> 

我有,我想他們會出現在網格(也許我會需要更換控制),當我點擊按鈕4個用戶控件。

一位朋友建議我在Blend上使用storyboard,但我記得很久以前我做了不同的事情,而我只用了XAML和C#。

我試圖使用故事板工具,但我不明白如何使用它,一般來說,我認爲故事板工具對於我的使用來說是矯枉過正。

回答

3

提供一個名稱電網:

<Grid Name="MainGrid" > 

</Grid> 

,然後在代碼behine,處理單擊事件:

void Button_Click_1(object sender, MouseEventArgs e) 
{ 
    MainGrid.Children.Add(// Your control //); 
} 
+0

那麼容易,我很尷尬。 10倍很多! – SigmaOmega

+0

我有一點Q,在後面的代碼中我總是需要創建一個新的控件實例?像這樣: 'MainGrid.Children.Clear(); Dashboard board = new Dashboard(); MainGrid.Children.Add(board);' 因爲當我試圖這樣做: 'MainGrid.Children.Clear(); MainGrid.Children.Add(Dashboard);' 我得到一個錯誤:( – SigmaOmega

+0

不,如果您調用了'InitializeComponent()'方法,則會創建一個MainGrid的實例。 – Ramin

相關問題