2010-03-28 238 views
3

我正在實施一個帶有一些標籤的自定義控件,並且我需要測量這些標籤的尺寸以獲得最佳佈局。通過這種方式,我可以正確顯示每種字體和字體大小的控件。
你能告訴我該怎麼做?
謝謝。測量標籤尺寸

回答

2

的正確方法仰望大小,並安排您的自定義控制是覆蓋MeasureOverrideArrangeOverride

詳見鏈接,但簡而言之,你的控制應該(在的MeasureOverride):

  1. 呼叫UIElement.Measure對所有兒童(其中將包括您的標籤),將返回的大小每個孩子的希望有
  2. 計算自己需要的尺寸和
  3. 回報這個尺寸的框架(通過使用它作爲MeasureOverride的返回值)。

之後,在ArrangeOverride,您可以通過框架得到分配給您的控件的大小作爲參數,並

  1. 你確定你要多大的空間分配給每個子元素和
  2. 在每個子元素上調用UIElement.Arrange
0

你可能要根據其子元素的大小ev.Graphics.MeasureString(STR,字體)