我正在向listview.items添加图片,我想知道是否有办法改变每个项目的宽度?现在它跨越整个列表视图,我想使它成为图像的宽度,这样我每行可以容纳几个。
答案 0 :(得分:0)
添加列时,您可以选择设置宽度。
listView1.Columns.Add("Assigned To", -2, HorizontalAlignment.Left);
listView1.Columns.Add("Start Date", 112, HorizontalAlignment.Left);
listView1.Columns.Add("Date Began", 112, HorizontalAlignment.Left);
listView1.Columns.Add("Date Completed", 112, HorizontalAlignment.Left);
listView1.Columns.Add("Due Date", 112, HorizontalAlignment.Left);
listView1.Columns.Add("Description", 375, HorizontalAlignment.Left);
listView1.Columns.Add("CR", -2, HorizontalAlignment.Center);
listView1.Columns.Add("Confirmed By", -2, HorizontalAlignment.Left);
答案 1 :(得分:0)
我认为您问题的具体答案是您只需要为已添加为ListViewItem的图片资源设置Stretch =无。例如,以下XAML会显示您之后看到的显示:
<ListView x:Name="lv" HorizontalAlignment="Left" Margin="153,206,0,0" VerticalAlignment="Top" SelectionChanged="lv_SelectionChanged">
<ListViewItem>
<StackPanel Orientation="Horizontal">
<Image Source="/Assets/SmallLogo.png" Stretch="None" />
<Image Source="/Assets/SmallLogo.png" Stretch="None" />
<Image Source="/Assets/SmallLogo.png" Stretch="None" />
</StackPanel>
</ListViewItem>
<ListViewItem>
<Border BorderBrush="Aqua" BorderThickness="1" Background="Red">
<Image Source="/Assets/Logo.png" Stretch="None" />
</Border>
</ListViewItem>
</ListView>
但这是一个脆弱的解决方案,因为你需要在一些其他容器(如StackPanel,这里)中填充每个ListViewItem可能可变数量的项目,如果 - 如你所述 - 你想要适合'少数行”。
根据您正在寻找的效果,您可能需要考虑一些替代控制方法,如GridView和VariableSizedWrapGrid。请查看Jerry Nixon's post,了解您可以实现的更灵活,更具吸引力的演示文稿。