我可以修改我的面板的儿童宽度吗?

问题描述:

我想它例如我可以修改我的面板的儿童宽度吗?

public int ChildSize 
     { 
      get { return childSize; } 
      set 
      { 
       foreach (UIElement child in Children) 
       { 
        child.DesiredSize.Width = value; 
       } 
      } 
     } 
+1

您正在编写自定义面板吗?请在你的问题更详细。 – AnthonyWJones

我怀疑你编写自定义面板,这是一种相当先进的任务。

您的面板应为MeasureOverrideArrangeOverride方法创建覆盖。

在这些方法中,你应该调用每个孩子的MeasureArrange方法通过在适当的SizeRect根据每个孩子的你确定childSize和计算的相对位置。

+0

我知道这 哪些是我必须改变的财产?因为RenderSize | DesiredSize不可更改 –

+1

查看MeasureOverride的描述:http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.measureoverride.aspx这就是您定义控件所需大小的位置。你不能只设置一个属性。您需要像A.W.Jones提到的那样覆盖方法MeasureOverride和ArrangeOverride。 – invalidusername