0

c# 中是否有任何控件允许我们使用图像和格式化的文本和图标制作某种列表视图,类似于 android 中的联系人?我找到的最接近的是:

1) http://www.c-sharpcorner.com/UploadFile/mgold/ListViewInCSharp11172005021741AM/ListViewInCSharp.aspx

2) http://www.dreamincode.net/forums/topic/75911-adding-images-to-listview/

在我看来,与 android 和 iPhone 相比,这非常难看,如下所示:

http://www.trymasak.my/sample/iphone2.jpg
4

3 回答 3

1

我明白你在说什么,但很多时候让一些东西“工作”和“造型”是两件非常非常不同的事情。它还很大程度上取决于您使用的技术:WinForms(可能是最简单的入门,尽管定制可能是一件大事)、WPF、Silverlight,不胜枚举。

这是我偶然发现的东西。它也是相当新的。我很确定这将有助于在 WinForms 中快速入门。它被称为 ObjectListView:

http://www.codeproject.com/Articles/16009/A-Much-Easier-to-Use-ListView

于 2012-05-17T12:37:17.073 回答
1

好的,如果您不在乎使用 WinForms 还是 WPF,我建议您使用 WPF。

如果您想要类似的东西ListView,请尝试使用DataGrid. 您在这里需要的基本概念是DataTemplate. 在 中DataTemplate,您可以根据需要重新设置单元格内容的样式。

这是我从我的一些代码中提取的一个粗略示例,但我没有让它自己编译。它会给你一个良好的开端。

<DataGrid ItemsSource="{Binding MyGridData}" AutoGenerateColumns="False" Name="my_datagrid">
    <DataGrid.Columns>
        <DataGridTemplateColumn Header="Column1">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <Image Source={Binding GridCellImage}" />
                        <TextBlock Text="{Binding GridCellText}" />
                    </StackPanel>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>

阅读数据绑定以了解MyGridData. 它基本上将是一个代码隐藏集合,为您的网格提供信息。它可能类似于 aList<T>ObservableCollection<T>。T 是一个具有两个称为GridCellImage和的公共属性的类GridCellText。WPF 使您可以轻松地在代码隐藏中创建数据,并且因为它是数据绑定的,所以您的 GUI 将自动更新(在ObservableCollection. 设置GridCellImage为您的图像路径和GridCellText该单元格中所需的文本。 GridCellImage需要更多指定才能使其真正起作用,但这个答案的重点是向您展示在 WPF 中重新模板化内容以使其几乎可以随心所欲地显示数据是多么容易。

希望这可以帮助!

于 2012-05-17T12:43:06.040 回答
0

使用 wpf 项目。创建 StackPanel 或 Dockpanel,然后在其中添加您的组件。

然后将此面板添加到您的网格视图的子级

于 2012-05-17T12:38:14.390 回答