[英]UserControl that is also a Grid in WPF
我想创建一个UserControl
,它将具有一些行为(动画崩溃……)和其中的一些控件( Rectangle
, Ellipse
,主要用于设计目的)。
但是我需要它是一个像Grid
这样的有效Panel
以便在设计主窗口时可以在其中放置更多控件。 在创建UserControl
时,将不会在主窗口设计时添加到新USerControl
控件与添加到其中的组件进行交互。
我该怎么办? 我是否必须扩展Control
? 我宁愿只扩展UserControl
。
UserControl
是一个ContentControl
,它具有Content
属性,通常根据ContentTemplate
对其进行显示。 我要说的是UserControl
里面有1个项目。 当然,您可以将Children
属性添加到UserControl
并处理子项在控件中某些内部Grid
添加/删除,但这不是内容控件的用途。
要托管许多项目,您应该使用Panel
的子类,例如您提到的Grid
。 所有面板均具有Children
属性,并在其上排列了元素列表。 您可以继承Grid
并在其中放置一些行为。 例如,您可以创建一个扩展属性MyGrid.Collapsed
,将其设置在网格中的元素上,以便它可以排列它们的位置。
另一个选择是将ItemsControl
子类化。 放置在其中的元素将根据其ItemsPanel
模板显示。 这种方法还为您提供了ItemsSource
属性的优点,该属性可通过使用ItemTemplate
属性从元素中生成元素来显示任意数据类型的列表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.