C# 如何编写自定义控件,它可以像网格单元中的文本框一样自动调整大小?

C# 如何编写自定义控件,它可以像网格单元中的文本框一样自动调整大小?,c#,wpf,C#,Wpf,我已尝试覆盖MeasureOverride,但在调整网格大小时,可用大小不会改变。其中包含我的控件 class MyFrameworkElement : FrameworkElement { override Size MeasureOverride(Size available) { this.Width = available.Width; this.Height = available.Width this.UpdateLa

我已尝试覆盖MeasureOverride,但在调整网格大小时,可用大小不会改变。其中包含我的控件

class MyFrameworkElement : FrameworkElement 
{
    override Size MeasureOverride(Size available)
    {
        this.Width = available.Width;
        this.Height = available.Width
        this.UpdateLayout();  // do something...
    }
}
这仅在应用程序启动时有效


如何实现自动调整大小控件,就像网格单元中的文本框一样。如果调整网格大小,文本框将自动调整大小以填充网格单元格

如果您将控件设置为窗体(控件的用户不这样做,而控件本身不这样做),它应该自动调整其大小。

如果您将控件设置为窗体(控件的用户不这样做,而控件本身这样做),它应该自动调整其大小。

请指定“MyFrameworkElement”的可视树?没有这些,很难解释。因为WPF中的大多数控件都是“自由大小”的,这意味着它的父控件提供了任何大小,所以除了设置高度/宽度时,它都会使用自由大小。请指定“MyFrameworkElement”的可视树?没有这些,很难解释。因为WPF中的大多数控件都是“自由大小”的,这意味着无论它的父控件给出什么大小,它都会使用自由大小,除非我们设置高度/宽度