C# 隐藏某些控件时最大化wpf窗口

C# 隐藏某些控件时最大化wpf窗口,c#,wpf,C#,Wpf,我想在我的程序中最大化一个wpf窗口,当我点击一个按钮时,我已经写了这段代码,但它没有最大化 private void ShowHideMotorsButtonClick(object sender, RoutedEventArgs e) { Motor1WFH.Visibility = Visibility.Hidden; Motor2WFH.Visibility = Visibility.Hidden;

我想在我的程序中最大化一个wpf窗口,当我点击一个按钮时,我已经写了这段代码,但它没有最大化

    private void ShowHideMotorsButtonClick(object sender, RoutedEventArgs e)
    {

            Motor1WFH.Visibility = Visibility.Hidden;
            Motor2WFH.Visibility = Visibility.Hidden;
            MainTabControl.Margin = new Thickness(12, 12, 165, 12);
            this.WindowState = System.Windows.WindowState.Maximized;
    }
xaml代码:

    <Grid >
    <WindowsFormsHost Height="200" HorizontalAlignment="Right" Margin="0,43,12,0" VerticalAlignment="Top" Width="300" Name="Motor1WFH">
        <apt:MG17Motor x:Name="Motor1" />
    </WindowsFormsHost>
    <WindowsFormsHost Height="200" HorizontalAlignment="Right" Margin="0,249,11,0" VerticalAlignment="Top" Width="300" Name="Motor2WFH">
        <apt:MG17Motor x:Name="Motor2" />
    </WindowsFormsHost>
    <TabControl Margin="12,12,318,12" Name="MainTabControl">
    ...
当我没有为MainTabControl设置边距时

我如何最大限度地利用它,以及哪里出了问题

(正如您在我的第一张图片窗口中看到的,当我单击左按钮角将其最大化并隐藏一些控件时,它并没有完全最大化。)


下面是一个简单的示例,可以使用,将左侧控件放置在它们自己的网格中。首先是xaml:

    <Grid  Name="MainGrid">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="100"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>

    <Grid Grid.Column="0">
        <TabControl>
            <TabItem Header="+"/>
            <TabItem Header="-"/>
            <TabItem Header="Other"/>
        </TabControl>
    </Grid>

    <Grid Grid.Column="1">
        <TabControl>
            <TabItem Header="Option 1"/>
            <TabItem Header="Option 2"/>
            <TabItem Header="Option 3"/>
        </TabControl>
        <Button Background="Black" Width="30" Height="20" 
           HorizontalAlignment="Right" VerticalAlignment="Top" Click="OnExpBtnClick"/>
    </Grid>
</Grid>
其中,以下是类范围

    private bool _exp;
    private GridLength _origWidth;

我不知道你在说什么。发布一个屏幕截图,说明你得到了什么和你需要什么。@abdolah我不想变得太麻烦,但理想的情况是,你最终应该将
private GridLength\u origWidth
更改为依赖项道具(或至少是属性)等。
    private void OnExpBtnClick(object sender, RoutedEventArgs e)
    {
        if (_exp)
        {
            _exp = false;
            MainGrid.ColumnDefinitions[0].Width = _origWidth;
        }
        else
        {
            _exp = true;
            _origWidth = MainGrid.ColumnDefinitions[0].Width;
            MainGrid.ColumnDefinitions[0].Width = new GridLength(0.0, GridUnitType.Pixel);
        }
     }
    private bool _exp;
    private GridLength _origWidth;