Mohamed Hocine
Mohamed Hocine

Reputation: 595

Groupbox fit the available space WPF c#

I am creating this application, I want that Groupbox fit the available space and with margin of 10 in bottom, This is my code :

 <StackPanel Orientation="Vertical" Height="auto">
            <GroupBox x:Name="group" Margin="5,10,0.2,0" Height="300" >
                <DataGrid x:Name="Data"   Margin="348,81,348.4,44.8" HorizontalAlignment="Center"  >
                    <DataGrid.Columns>
                        <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="Data" Width="50"/>
                        <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="data" Width="200"/>
                        <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="data" Width="200"/>
                        <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="data" Width="50"/>
                        <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="data" Width="250"/>
                        <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="data" Width="250"/>
                        <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="data" Width="50"/>
                        <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="data" Width="50"/>
                        <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="data" Width="50"/>
                        <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="data" Width="50"/>
                    </DataGrid.Columns>

                </DataGrid>

            </GroupBox>

        </StackPanel>

enter image description here I have set the height of Groupbox, I am using the app in laptop but when I[! try to use it in desktop it doesn't fit

Upvotes: 0

Views: 737

Answers (3)

Lingam
Lingam

Reputation: 602

Remove Margin="348,81,348.4,44.8" HorizontalAlignment="Center" from <DataGrid x:Name="Data" Margin="348,81,348.4,44.8" HorizontalAlignment="Center" > .

When you specifically assign margin and horizontal alignment, its constrained. So, remove those two values.

set the vertical alignment to bottom. VerticalAlignment = "Bottom"

Upvotes: 0

SamTh3D3v
SamTh3D3v

Reputation: 9944

Lose the StackPanel and replace it with a grid, and set the Vertical alignment of the GroupBox to bottom:

 <Grid>
    <GroupBox x:Name="group" Margin="0,0,0,10" Height="300" VerticalAlignment="Bottom">
        <DataGrid x:Name="Data"   Margin="348,81,348.4,44.8" HorizontalAlignment="Center"  >
            <DataGrid.Columns>
                <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="Data" Width="50"/>
                <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="data" Width="200"/>
                <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="data" Width="200"/>
                <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="data" Width="50"/>
                <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="data" Width="250"/>
                <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="data" Width="250"/>
                <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="data" Width="50"/>
                <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="data" Width="50"/>
                <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="data" Width="50"/>
                <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="data" Width="50"/>
            </DataGrid.Columns>

        </DataGrid>

    </GroupBox>

</Grid>

Upvotes: 0

Neil B
Neil B

Reputation: 2224

Replace the stack panel with a grid, and then change the GroupBox height to auto.

<Grid>
    <GroupBox x:Name="group" Margin="5,10,0.2,0" Height="auto">
        <DataGrid x:Name="Data"   Margin="348,81,348.4,44.8" HorizontalAlignment="Center"  >
            <DataGrid.Columns>
                <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="Data" Width="50"/>
                <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="data" Width="200"/>
                <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="data" Width="200"/>
                <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="data" Width="50"/>
                <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="data" Width="250"/>
                <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="data" Width="250"/>
                <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="data" Width="50"/>
                <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="data" Width="50"/>
                <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="data" Width="50"/>
                <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="data" Width="50"/>
            </DataGrid.Columns>

        </DataGrid>

    </GroupBox>
</Grid>

Upvotes: 1

Related Questions