Растянуть DataGrid до StackPanel
Мне необходимо растянуть DataGrid на всё незанятое пространство до StackPanel. В StackPanel будут храниться различные кнопки. Пытался растянуть ячейки при помощи команды Width="*" в DataGridTextColumn, но тогда DataGrid вытесняет элементы за экран, без этой команды не получается растянуть на всё не занятое пространство
<Grid>
<DockPanel LastChildFill="True">
<DataGrid x:Name="AddressesGrid" DockPanel.Dock="Left" AutoGenerateColumns="True" Margin="5" IsReadOnly="True" Background="#FFC88F8F">
<DataGrid.Columns>
<DataGridTextColumn Header="Имя PC" Binding="{Binding Name_PC}"/>
<DataGridTextColumn Header="IP адресс" Binding="{Binding IP_Address}" />
<DataGridTextColumn Header="Mac адресс" Binding="{Binding MAC_Address}" />
</DataGrid.Columns>
</DataGrid>
<StackPanel DockPanel.Dock="Right" Width="130" Margin="5" Background="#7F4B5977" HorizontalAlignment="Right" >
<Button x:Name="button1" Width="110" Height="30" Click="Button_Test"
Background="White" Content="Test" />
</StackPanel>
</DockPanel>
</Grid>
Без Width="*" в DataGridTextColumn
С Width="*" в DataGridTextColumn
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Grid - это не просто панель, это сетка, у которой могут быть колонки и строки, можно легко создать 2 колонки. Правая по содержимому шириной, а левая на все остальное пространство. DockPanel здесь вообще не в тему.
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<DataGrid x:Name="AddressesGrid" AutoGenerateColumns="True" Margin="5" IsReadOnly="True" Background="#FFC88F8F">
<DataGrid.Columns>
<DataGridTextColumn Width="*" Header="Имя PC" Binding="{Binding Name_PC}"/>
<DataGridTextColumn Width="*" Header="IP адресс" Binding="{Binding IP_Address}" />
<DataGridTextColumn Width="*" Header="Mac адресс" Binding="{Binding MAC_Address}" />
</DataGrid.Columns>
</DataGrid>
<StackPanel Grid.Column="1" Width="130" Margin="5" Background="#7F4B5977" HorizontalAlignment="Right" >
<Button x:Name="button1" Width="110" Height="30" Click="Button_Test" Background="White" Content="Test" />
</StackPanel>
</Grid>

