gpt4 book ai didi

wpf - 如何使 WPF wrappanel 子项拉伸(stretch)?

转载 作者:行者123 更新时间:2023-12-03 20:28:00 25 4
gpt4 key购买 nike

我想创建一个 ItemsControl子项的位置类似于 WrapPanel ,但子项应尽可能多地占用空间。这样当窗口大小变大或变小时,子项应该按照一定的宽高比进行拉伸(stretch)。在 ItemsControl 中添加或删除子项时的ItemsSource , WrapPanel应适本地在项目之间放置换行符以保持子项目的宽高比。
以下是我到目前为止所拥有的。是否可以在 Xaml 中执行此操作?或者我应该为此创建一个自定义控件?提前致谢!

<Window>
<Grid>
<ItemsControl ItemsSource="{Binding DataCollection}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Vertical"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border BorderBrush="Black" BorderThickness="1" HorizontalAlignment="Stretch">
<StackPanel Orientation="Horizontal" >
<TextBlock TextWrapping="Wrap" Text="{Binding Name}" />
<TextBlock TextWrapping="Wrap" Text="{Binding Value}"/>
<TextBlock TextWrapping="Wrap" Text="{Binding Time, StringFormat='hh:mm:ss' }"/>
</StackPanel>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
</Window>

最佳答案

为了达到预期的效果,您可以尝试使用 WidthMaxWidth WrapPanel 的属性,例如通过这种方式

        <ListView
Name="RootControl"
ItemsSource="{Binding [icons]}"
ItemTemplate="{StaticResource IconTemplate}">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel
Width="{Binding ElementName=RootControl, Path=ActualWidth}"/>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>

有用
enter image description here

关于wpf - 如何使 WPF wrappanel 子项拉伸(stretch)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8004981/

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