2010-03-28 332 views
3

我正在实施一个带有一些标签的自定义控件,并且我需要测量这些标签的尺寸以获得最佳布局。通过这种方式,我可以正确显示每种字体和字体大小的控件。
你能告诉我该怎么做?
谢谢。测量标签尺寸

回答

2

的正确方法仰望大小,并安排您的自定义控制是覆盖MeasureOverrideArrangeOverride

详见链接,但简而言之,你的控制应该(在的MeasureOverride):

  1. 呼叫UIElement.Measure对所有儿童(其中将包括您的标签),将返回的大小每个孩子的希望有
  2. 计算自己需要的尺寸和
  3. 回报这个尺寸的框架(通过使用它作为MeasureOverride的返回值)。

之后,在ArrangeOverride,您可以通过框架得到分配给您的控件的大小作为参数,并

  1. 你确定你要多大的空间分配给每个子元素和
  2. 在每个子元素上调用UIElement.Arrange
0

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