测量标签尺寸

时间:2010-03-28 20:09:38

标签: c# .net wpf xaml

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

2 个答案:

答案 0 :(得分:2)

根据子元素的大小调整自定义控件的大小和排列的正确方法是覆盖MeasureOverrideArrangeOverride

请参阅链接了解详细信息,但简而言之,您的控件应该是(在MeasureOverride中):

  1. 对所有孩子(包括您的标签)发送UIElement.Measure,这将返回您的孩子想要拥有的的尺寸,
  2. 计算您自己想要的尺寸和
  3. 将此大小返回到框架(通过将其用作MeasureOverride的返回值)。
  4. 然后,在ArrangeOverride中,您获得框架作为参数分配给您的控件的大小,并且

    1. 确定要为每个子元素分配多少空间
    2. 在每个子元素上调用UIElement.Arrange

答案 1 :(得分:0)

你可能想查找ev.Graphics.MeasureString(str,font)