编辑列表视图项目宽度

时间:2012-12-12 03:11:49

标签: c# xaml windows-8 windows-store-apps

我正在向listview.items添加图片,我想知道是否有办法改变每个项目的宽度?现在它跨越整个列表视图,我想使它成为图像的宽度,这样我每行可以容纳几个。

2 个答案:

答案 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>

enter image description here

但这是一个脆弱的解决方案,因为你需要在一些其他容器(如StackPanel,这里)中填充每个ListViewItem可能可变数量的项目,如果 - 如你所述 - 你想要适合'少数行”。

根据您正在寻找的效果,您可能需要考虑一些替代控制方法,如GridView和VariableSizedWrapGrid。请查看Jerry Nixon's post,了解您可以实现的更灵活,更具吸引力的演示文稿。