繁体   English   中英

在WPF中也是网格的UserControl

[英]UserControl that is also a Grid in WPF

我想创建一个UserControl ,它将具有一些行为(动画崩溃……)和其中的一些控件( RectangleEllipse ,主要用于设计目的)。

但是我需要它是一个像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属性从元素中生成元素来显示任意数据类型的列表。

我正在寻找的是ContentPresenter类以及相关性属性。 更多的话题在这里在这里 或尝试使用此Google搜索

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM