C# WPF UniformGrid动态行高
我写了一个显示一些图像的小应用程序。为此,我使用了一个C# WPF UniformGrid动态行高,c#,wpf,height,uniformgrid,C#,Wpf,Height,Uniformgrid,我写了一个显示一些图像的小应用程序。为此,我使用了一个UniformGrid。我的xaml-代码: 这里有一条不同的路线,你可以看看。它使用网格代替,并使用类允许您执行所需操作,因为每行的默认高度设置为“自动” <ScrollViewer> <ItemsControl ItemsSource="{Binding Images}"> <ItemsControl.Template>
UniformGrid
。我的xaml
-代码:
这里有一条不同的路线,你可以看看。它使用网格代替,并使用类允许您执行所需操作,因为每行的默认高度设置为“自动”
<ScrollViewer>
<ItemsControl ItemsSource="{Binding Images}">
<ItemsControl.Template>
<ControlTemplate>
<Grid
IsItemsHost="True"
Loaded="Grid_Loaded"
GridHelpers.RowCount="{Binding Path=Items.Count, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ItemsControl}}}">
</Grid>
</ControlTemplate>
</ItemsControl.Template>
<ItemsControl.ItemTemplate>
<DataTemplate>
<materialDesign:Card Padding="32px" Margin="8px">
<StackPanel>
<StackPanel>
<Image Source="{Binding Path, Mode=OneWay}" />
</StackPanel>
</StackPanel>
</materialDesign:Card>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
您的问题是什么?你认为你的用户界面会是什么样子?@mm8看一下图片。第二个标记位置。两个图像(上一个和下一个)之间的空间也应为16px。正如MSDN所述,UniformGrid“提供了一种在网格中排列内容的方法,其中网格中的所有单元格大小相同”因此,可能它不是您所需要的控件。您是否尝试使用WrapPanel作为ItemsPanelTemplate而不是UniformGrid?@MyNewName您可以从小型博客文章开始。在ArrangeOverride
中,您只需计算点的右X,Y坐标,即可为面板中的每个元素放置元素。在你的情况下,这些计算非常简单。自定义面板是解决WPF中许多与UI相关的问题的关键,因此我强烈建议您学习它:)