【发布时间】:2014-06-21 19:27:31
【问题描述】:
我正在制作一个 Windows 8.1 C# 应用程序,其中一行中有一个色块列表。颜色的数量可以改变,我希望色块填满列表控件的宽度。我试过像这样使用 ItemsControl:
<ItemsControl Name="testGrid" HorizontalAlignment="Left" Margin="12,100,0,0" Width="220" Background="Black">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Rectangle Fill="{Binding}" MinWidth="44" Height="44"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
我已经尝试了 GridView 和 ListView 以及将 HorizontalContentAlignment 设置为拉伸的项目样式。主要问题是这些都是垂直列表。我需要一个水平的。
如果我尝试添加 StackPanel,拉伸的项目将停止工作。像这样:
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
这是一个示例图像:
我正在使用绑定到列表或可观察集合的项目源。我将如何实现图像中的效果?谢谢
【问题讨论】:
-
如果它不可用,您可以移植 WPF 的 UniformGrid(并将行设置为 1)
-
UniformGrid 能否在 Win 8.1 环境中工作?这不是他们遗漏的原因吗?
-
拿UniformGrid的源码自己看吧。我不知道为什么 MS 忽略了它
标签: c# windows-8 windows-runtime winrt-xaml windows-8.1