在主窗口 - WPF中的网格中打开用户控件

时间:2012-12-02 07:38:55

标签: wpf user-controls

我现在正在用WPF写一个应用程序并试图记住我很久以前做过的事情。 我正在尝试使用带有4个按钮的窗口,我将通过应用程序导航它们。

我的代码:

<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个用户控件,我希望它们出现在Grid中(可能我需要更换控件)。

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

我尝试使用故事板工具,但我不明白如何使用它,一般来说我觉得故事板工具对我来说太过分了。

1 个答案:

答案 0 :(得分:3)

为网格命名:

<Grid  Name="MainGrid" >

</Grid>

然后,在代码后面,处理点击事件:

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