2011-04-20 117 views
0

我在创建一个面板,它将所有的孩子包裹在一个ViewBox中,以便它们可以缩放到一定的大小。wpf自定义面板

我不确定这是否可以做到,但我想我会问。我不确定这是否可能的原因是因为Panel没有与它们关联的任何xaml。他们用代码来衡量和安排孩子。有小费吗?


不是足够清楚后,我想我会更具体:

我想有一个小组,因为我想安排和衡量我的孩子。

  1. 该度量查找所有子元素的平均高度/宽度。
  2. 该排列将它们放入网格状图案中,并将它们缩放到平均高度/宽度。我不想他们cliptobounds,我希望他们扩大规模或适当缩小。

我已经得到了measureoverride函数来寻找平均高度/宽度,但我无法弄清楚如何在我的布置中对它们进行缩放。

+1

你确定你想要一个面板吗?正如你所说的小组测量和安排。你所描述的听起来更像是一个ItemsControl whoose ItemsContainer是一个ViewBox ...否则给我们一些关于你如何想象面板儿童被安排的更多信息。或者,如果我阅读你的问题略有不同,你需要的是一个带有Grid(或任何其他面板)的ViewBox,它带有子节点。请更具体的 – 2011-04-20 20:31:58

+0

我更新了我的问题... – michael 2011-04-21 12:37:34

+0

你说你已经得到了测量功能的工作。请您如此善良地向我们展示您的面板到目前为止,或许我们可以更好地意识到您的要求。目前看来你似乎没有太多的想法。也许你可以给我们提供一个具体的例子。 – 2011-04-22 10:38:28

回答

2

你还没有完全确定你希望你面板工作,所以我不能给你一个样本面板,但是我可以指出你,做类似的东西,你想要做什么工作小组:

在你可以看到,我们可以只缩放面板自己的孩子模仿Viewbox的例子。正如我所提到的,你想要扩展它们的方式取决于你。

0

即使在更新之后,我同意Markus。它似乎并不需要自定义面板。你需要的是带有UniformGrid的ItemsControl作为ItemsPanel和ViewBox作为ItemsContainer。 UniformGrid决定你的物品容器的排列方式。 ViewBox处理每个项目的拉伸和缩放。

+1

UniformGrid并不会将_average_大小统一为一致,因此我需要一个定制面板。我想到了一个UniformGrid,但我试图根据_average_大小来扩展一切。 – michael 2011-04-21 13:49:21