wpf - WPF控件拉伸问题
问题描述
我有一个DataGrid
在Grid
一个TabItem
:
<TabItem Header="SomeHeader">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition SharedSizeGroup="TabHeight" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="TabWidth"/>
</Grid.ColumnDefinitions>
<DataGrid Margin="10" Grid.Column="0" Grid.Row="0"
HorizontalAlignment="Stretch"
VerticalContentAlignment="Stretch"
IsReadOnly="True"
AutoGenerateColumns="False">
</DataGrid>
</Grid>
</TabItem>
问题是DataGrid
拒绝对包含的Grid
. 是什么阻止它这样做?
解决方案
您Grid
与共享大小组共享其行和列大小,TabWidth
并且TabHeight
. 因此,包含 的行和列的大小在共享相同组并位于相同网格大小范围内的DataGrid
所有 s 中确定,如下所示:Grid
- 绝对值优先于
Auto
,因此组中最大的显式列大小获胜,即使所有其他列都定义为Auto
- 如果所有行/列都是
Auto
-size,则最大的获胜 - 星号 (
*
) 被视为Auto
(列的默认宽度为1*
,因此该规则也适用)
澄清一下, 的DataGrid
大小是为了适应它在 中分配的行和列Grid
,而不是Grid
自身的大小。如果要将其调整为包含选项卡的大小,则Grid
是多余的。将共享大小应用于行或列并将其调整大小以填充其父级是相反的目标,请选择一个。
推荐阅读
- c - 当我运行我的代码时,它没有给我任何输出,当我尝试调试它时,它给了我如下所述的错误。需要帮助来解决此问题
- javascript - 如何在 React-intl 日期格式中使用 '-' 而不是 '/'
- swiftui - SwiftUI:编译器无法在合理的时间内对该表达式进行类型检查
- laravel - Laravel Cashier Paddle - 试用天数错误
- security - 避免金融网站dos攻击的最推荐解决方案是什么?
- c++ - 如何将 protobuf 动态消息转换为 C++ 中声明的消息?
- python - django mongodb 使用 djongo 和 pymongo 连接
- maven - 在 spark 类路径中为 mmlspark 添加 jar
- c - 对 _imp__recv@16' 的未定义引用
- c++ - 标头中声明的函数可以在一个项目中的不同源文件中具有多个定义吗?