这是显示我的应用程序详细信息的 UserControl,正如您所看到的ColumnWidth
属性显式设置为*
。我也尝试设置Width
财产来自DataGridTextColumn
.
<UserControl x:Class="WpfUserInterface.MyDetailsView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d" Height="185" d:DesignWidth="480">
<Grid>
<DataGrid ColumnWidth="*" Margin="10">
<DataGrid.Columns>
<DataGridTextColumn Header="Column1"/>
<DataGridTextColumn Header="Column2"/>
<DataGridTextColumn Header="Column3"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
</UserControl>
这是仅包含 DataGrid 的主窗口。
<Window x:Class="WpfUserInterface.Window"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window" Height="306" Width="453">
<Grid>
<DataGrid ColumnWidth="*">
<DataGrid.Columns>
<DataGridTextColumn Header="ParentColumn1"/>
<DataGridTextColumn Header="ParentColumn2"/>
<DataGridTextColumn Header="ParentColumn3"/>
</DataGrid.Columns>
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<MyDetailsView/>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
</DataGrid>
</Grid>
</Window>
这是当您运行应用程序并在父 DataGrid 中选择一行时屏幕上显示的内容。
当我在中设置 DataGrid 的宽度时MyDetailsView
对于像 400 这样的指定值,列的大小是完美的,但这不是一个选项。有什么办法可以解决这个问题吗?解决方法?
我知道这个问题大约一年前被问过,但我一直面临着同样的问题,并且我找到了这个解决方案:
this.dgrData.Columns[0].Width = new DataGridLength(1, DataGridLengthUnitType.Star);
this.dgrData.Columns[1].Width = new DataGridLength(1, DataGridLengthUnitType.Star);
...
希望它对某人有任何帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)