2011-04-20 118 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