此问题已在此处有答案:
Add n rectangles to canvas with MVVM in WPF(2个答案)
programmatically addressing a canvas created in xaml(1个答案)
昨天关门了。
我想创建我自己的控件从ListBoxItem派生,在我的控件应该存在一个多边形,将显示.多边形应该包含3点,所以一个三角形.这个三角形应该然后显示.由于三角形应该存在于ListBoxItem,我不知道如何显示它.最重要的是,我希望几个ListBoxItem包含在一个ListBox中,为了创建一个2D字段.
我究竟如何使这一工作,因为我不是在创建自定义控件的经验,真的需要你的帮助。
1条答案
按热度按时间pcrecxhr1#
您可能不需要自定义项目模板的自定义控件。请检查@Clemens答案。#
你不会创建一个派生的ListBoxItem,而只是在ListBox的ItemTemplate中放置一个Polygon,类似于下面的代码:stackoverflow.com/a/22325266/1136211。将Polygon的Points属性绑定到视图模型项类的属性。您不需要该示例的ItemContainerStyle,但您应该使用Canvas作为ItemsPanel。
如果你仍然想使用自定义控件,你需要将它添加到@Clemens回答中提到的ItemTemplate:
<ItemTemplate><your-custom-control /></ItemTemplate>
如果您需要对所选项目模板进行更多控制,可以选中ItemTemplateSelector(请参阅learn.microsoft.com)。