我有一个图像路径列表,并希望在单个水平行中显示它们所引用的图像。每个图像的宽度应该是相同的,他们都应该填补窗口的高度或其分配的宽度作为窗口的大小调整。
我试着用StackPanel来实现这个功能,但是它不能像使用 *-sizing的Grid那样调整图像的大小。
<ItemsControl
x:Name="HandImages"
Padding="5"
ScrollViewer.HorizontalScrollBarVisibility="Visible">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Image
Source="{Binding}"
Tapped="ImageTapped"
Stretch="UniformToFill"
FlyoutBase.AttachedFlyout="{StaticResource ImagePreviewFlyout}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
2条答案
按热度按时间0g0grzrc1#
您可以使用Windows CommunityToolkit中的UniformGrid并将其用作
ItemsPanel
。1.为您的页面命名。我们需要这样做,以便在页面中从
DataTemplate
绑定到Items.Count
属性。1.安装CommunityToolkit.WinUI.UI.Controls.PrimitivesNuGet包。
1.还有这个
ev7lccsx2#
可以用最少的XAML以编程方式完成此操作。这是我使用的XAML。
然后创建一个可观察的视图集合。我在我的案例中使用了这个。
然后,添加代码来响应集合中的更改,如下所示。