wpf自定义面板

时间:2011-04-20 20:20:28

标签: wpf xaml panel viewbox arrangeoverride

我正在创建一个面板,它将所有子节点包装在一个ViewBox中,以便它们可以缩小到一定的统一大小。

我不确定这是否可行,但我想我会问。我不确定这是否可行的原因是因为Panel没有任何关联的xaml。他们用代码来衡量和安排孩子。有什么提示吗?


在不够清楚之后,我想我会更具体:

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

  1. 该度量查找所有子元素的AVERAGE高度/宽度。
  2. 排列将它们放入网格状图案中并将它们缩放到平均高度/宽度。我不希望它们被剪裁,我希望它们按比例放大或适当缩小。
  3. 我已经有了measureoverride函数来查找平均高度/宽度,但我无法弄清楚如何在我的arrangeoverride中缩放它们。

2 个答案:

答案 0 :(得分:2)

您还没有完全指定您希望面板如何工作,所以我不能给您一个示例面板,但我可以指向一个工作面板,它可以执行类似于您想要做的事情:

在示例中,您可以看到我们可以通过自己缩放面板的子项来模拟Viewbox。正如我所提到的,你想要如何扩展它们取决于你。

答案 1 :(得分:0)

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