【发布时间】:2021-01-12 05:34:30
【问题描述】:
我已经完成了在我的项目中使用过几次的可重用用户控件。
通常主网格的第二行需要比第一行大 7 倍,但在特定情况下只需要大 5 倍。
<Grid x:Name="mainGrid">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="7*"/>
</Grid.RowDefinitions>
...
</Grid>
我尝试通过 XAML 设置它:
<helperControls:AttachmentsGridControl x:Name="projectAttachmentsControl" ... HeightOfSecondRow="5" />
在 .cs 部分:
public int HeightOfSecondRow { get; set; }
public AttachmentsGridControl()
{
InitializeComponent();
if(HeightOfSecondRow > 0)
this.mainGrid.RowDefinitions[1].Height = new GridLength(HeightOfSecondRow, GridUnitType.Star);
}
但是在调用控件的构造函数时不会传递值。该值需要在调用构造函数时传递,因此我可以指定第二行的高度需要多少并正确渲染。
【问题讨论】:
-
在什么条件下,行需要大 5 倍而不是 7 倍?
-
可能是我一开始就搞错了项目。我设置了 40 行和 40 列的主网格。在此我有许多控件,包括我自己的新用户控件,在某些情况下,我放置了 6 行和一些 8 行。只是临时设计问题。在我学会如何做好它并将所有内容重构为可扩展和支持 4k 之前,我想解决这个问题,所以它看起来没问题,无论同一个用户控件是通过我的主窗口网格的 6 行还是 8 行。
标签: c# wpf xaml user-controls rowdefinition