gpt4 book ai didi

wpf - 如何在 WPF 中水平分布对象数组?

转载 作者:行者123 更新时间:2023-12-04 05:51:13 26 4
gpt4 key购买 nike

我想列出一组对象,并让这些项目水平均匀分布。如果它不是一个数据绑定(bind)数组,我只需创建一个具有正确列数的网格并将每个项目分配给一列。问题是我不知道如何使用数据绑定(bind)列表控件来做到这一点。

作为一种廉价的替代方案,我使用堆栈面板作为 ItemsPanel 水平列出项目,用于 ItemsControl,如下所示:

    <ItemsControl ItemsSource="{Binding Path=ValveSettings}" Grid.Row="0">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<Label Content="{Binding Path=Name}" Grid.Row="0" />
<ScrollBar Orientation="Vertical" Grid.Column="0" Grid.Row="1" Minimum="0" Maximum="100000" Value="{Binding Path=DelayInMicroseconds}" SmallChange="100" LargeChange="1000" />
<TextBox Text="{Binding Path=DelayInMicroseconds}" Grid.Row="2" />
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>

有没有办法让它们均匀分布?

最佳答案

这是 CodeWarrior 的评论结果,效果非常好:

    <ItemsControl ItemsSource="{Binding Path=Settings.Valves}" Grid.Row="0">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Rows="1" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<TextBlock Text="{Binding Path=Name}" Grid.Row="0" TextAlignment="Center" />
<ScrollBar Orientation="Vertical" Grid.Column="0" Grid.Row="1" Minimum="0" Maximum="100000" Value="{Binding Path=DelayInMicroseconds}" SmallChange="100" LargeChange="1000" />
<TextBox Text="{Binding Path=DelayInMicroseconds}" Grid.Row="2" TextAlignment="Center" />
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>

关于wpf - 如何在 WPF 中水平分布对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10014721/

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