#wpf #xaml #wpfdatagrid
#wpf #xaml #wpfdatagrid
Вопрос:
Имея сетку данных внутри сетки, я хотел бы, чтобы столбцы ширины сетки данных и сетки данных автоматически помещались внутри родительского элемента управления.
Так что, если пользователь решит увеличить ширину окна, как мне увеличить ширину сетки и ее столбцов?
<Window x:Class="AME.WpfBidouille.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<DataGrid>
<DataGrid.Columns>
<DataGridTextColumn Header="Publication date"/>
<DataGridTextColumn Header="A very large field to be displayed"/>
<DataGridTextColumn Header="N° Omega" />
<DataGridTextColumn Header="Crée le" />
<DataGridTextColumn Header="Login" />
<DataGridTextColumn Header="Demandeur" />
<DataGridTextColumn Header="Type" />
<DataGridTextColumn Header="Status" />
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
Комментарии:
1. вы можете попробовать добавить
ColumnWidth="*"
в сетку данных2. Удалите свой hardset
Width="525"
3. @Chris amp; @ Darius : не помогает. ширина столбцов остается прежнего размера.
4. попробуйте установить
Width="*"
для всех столбцов5. @nit: кажется, работает нормально! Спасибо.
Ответ №1:
Установите Width
для каждого из ваших столбцов значение "*"
<DataGrid>
<DataGrid.Columns>
<DataGridTextColumn Width="*" Header="Publication date"/>
<DataGridTextColumn Width="*" Header="A very large field to be displayed"/>
<DataGridTextColumn Width="*" Header="N° Omega" />
<DataGridTextColumn Width="*" Header="Crée le" />
<DataGridTextColumn Width="*" Header="Login" />
<DataGridTextColumn Width="*" Header="Demandeur" />
<DataGridTextColumn Width="*" Header="Type" />
<DataGridTextColumn Width="*" Header="Status" />
</DataGrid.Columns>
</DataGrid>
Ответ №2:
Другой способ, которым вы могли бы это сделать, — создать стиль и использовать его для применения к DataGrid
<Style x:Key="DynamicGridColumns" TargetType="DataGrid">
<Setter Property="ColumnWidth" Value="*" />
</Style>
<DataGrid Style="{StaticResource DynamicGridColumns}">
<DataGrid.Columns>
<DataGridTextColumn Header="Publication date"/>
<DataGridTextColumn Header="A very large field to be displayed"/>
<DataGridTextColumn Header="N° Omega" />
<DataGridTextColumn Header="Crée le" />
<DataGridTextColumn Header="Login" />
<DataGridTextColumn Header="Demandeur" />
<DataGridTextColumn Header="Type" />
<DataGridTextColumn Header="Status" />
</DataGrid.Columns>
</DataGrid>