树形视图替代方案

5

我目前正在开发一个项目,涉及到列出带有照片和电子邮件地址的联系人,类似于即时通讯软件的联系人列表。

问题在于ListView并不能满足我的需求!

我需要像MSN Live Messenger联系人列表那样的东西,它由一个大的填充区域组成,其中包含照片(32px),以及右侧的文本,但也具有可展开的标题。

请问有人可以给我一些参考资料或者如果可以使用Tree-view来实现,是否可以给我一个示例。

此致敬礼。

2个回答

2
我建议创建一个 WPF 用户控件,并将其托管在 Windows Forms 项目中的 ElementHost 控件中。我之前曾在 WinForms 中使用过 WPF,效果很好。
假设您在 WinForms 中添加了一个名为 elementHost1 的元素宿主控件:
        elementHost1.Child = new MyWPFControl();

问题在于这个项目已经完成了40%,而我对WPF的掌握程度不如其他技术,因为我没有系统地学习过它。虽然我非常希望能够使用WPF,但由于项目正在进行中,我们现在没有时间进行转换。 - RobertPitt
@RobertPitt:你误解了我的回答,我并不建议切换。您不会切换或重做任何旧代码。在WPF中唯一需要完成的事情就是一个用户控件。您仍然拥有一个Winforms项目,只是通过ElementHost元素托管单个WPF用户控件。 - Brian R. Bondy
好的,我明白了。你能否提供一个示例,演示如何将ListView添加到我刚创建的Element Host中? - RobertPitt
好的,感谢您的帮助。我已经添加了所需的引用,并将对象初始化添加到设计中。ListView()现在已经附加到我的Elementhost上。每当我尝试“编辑托管元素”时,它会显示“无法在解决方案中找到子项”。有什么想法吗 :) - RobertPitt
我不确定,但我认为这与元素主机没有关系。顺便说一句,我建议创建一个包含您的树视图的WPF用户控件。 - Brian R. Bondy
显示剩余3条评论

0
你正在使用 WPF 吗? 你可以使用一个带有 ExpanderListView,并为 ItemTemplate 设置它。 Blacklight 还有一个很棒的 AnimatedExpander:请参见 Blacklight releases
希望这能帮到你!

使用Windows Forms。我目前对WPF不够自信,而且这个项目有截止日期,所以选择了最快的路线。 - RobertPitt
啊,算了吧。WPF非常适合这种情况;你可以在按钮中放置按钮,在TreeView中放置Expanders,在ComboBoxes中放置带有文本框的旋转3D立方体..好吧,你懂的。 - Kieren Johnstone
我跟随 Brian R. Bondy 的建议,使用了混合集成。无论如何,感谢你的帮助。 - RobertPitt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接