gpt4 book ai didi

c# - 网格松动 "Stretch"-Property

转载 作者:太空宇宙 更新时间:2023-11-03 23:09:44 24 4
gpt4 key购买 nike

我正在尝试使用网格创建一个 ItemsControl 以确保占用整个空间并在列之间拆分。例如,DataTemplates 是这样的: Simple Grid-Test

Grid-Control 是我找到的唯一具有此属性的控件。由于网格不能很好地与动态单元格一起工作,我在这里使用答案来绑定(bind)我的模型: WPF Grid as ItemsPanel for a list dynamically bound to an ItemsControl

目前为止一切正常,我的代码如下所示:

<DataTemplate x:Key="DtTaskBoardSection" DataType="{x:Type m:TaskBoardSection}">
<uc:TaskBoardSectionControl
AttachedTaskBoardSection="{Binding}" />
</DataTemplate>

<DataTemplate x:Key="DtTaskBoardSectionList" DataType="{x:Type m:TaskBoardSectionList}">
<ItemsControl ItemsSource="{Binding}" ItemTemplate="{StaticResource DtTaskBoardSection}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Grid
ShowGridLines="True"
xf:DynamicGridSizeBinding.ColumnCount="{Binding Count}"
Background="LightGreen" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>

<!--https://stackoverflow.com/questions/2432847/bind-grid-row-grid-column-inside-a-datatemplate-->
<ItemsControl.ItemContainerStyle>
<Style TargetType="ContentPresenter">
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="Grid.Column" Value="{Binding Sequence}" />
</Style>
</ItemsControl.ItemContainerStyle>
</ItemsControl>
</DataTemplate>

不幸的是,在实际项目中,它现在只是像 StackPanel 那样堆叠控件:

Fail

浅绿色背景代表网格,但我希望我的两个测试控件各占 50%,但事实并非如此。

不幸的是,我很难深入了解 ItemTemplate-Logic 的内部结构,但似乎覆盖它会导致 Grid 不仅覆盖直接的 Item-Properties,还会覆盖一些重要的 Content-Alignment .我想我在这里遗漏了一部分逻辑,你能给我提示吗,我遗漏了 WPF 模板过程的哪一部分?

最佳答案

您的 DynamicGridSizeBinding.ColumnCount 属性可能正在创建 ColumnDefinitions,其宽度的 GridUnitType 设置为 Auto,而它应该是 星级:

new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) };

但是,对于大小均匀的列,您不需要带有附加 ColumnCount 属性的 Grid。最好使用具有单行的 UniformGrid:

<ItemsControl ItemsSource="{Binding}" ItemTemplate="{StaticResource DtTaskBoardSection}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Rows="1"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>

关于c# - 网格松动 "Stretch"-Property,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39798715/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com