WPF UserControl 宽度与高度相同

WPF UserControl same Width as Height

我有一个 UserControl,我希望它始终位于正方形中。高度变化必须将宽度更改为相同的值,反之亦然。我想隐藏高度和宽度(XAML 和 属性 编辑器)并且我想创建一个新的 属性 "Size"。我试图通过“[Browsable(false)]”隐藏属性,但它在 XAML 中可见。

Width=Height 不起作用。更改 Size 属性 也不起作用。在设计中 XAML 未绑定宽度和高度。

快速示例:

[Browsable(false)]   //visible in XAML, but not in Property Editor!!!
public new double Width 
{ 
   get { return Width; }
   set { Height = Width = value; }  //or "Size = value;" or anything else?
}

[Browsable(false)]   //visible in XAML, but not in Property Editor!!!
public new double Height 
{ 
   get { return Height; }
   set { Width = Height = value; }  //or "Size = value;" or anything else?
}

private double size;
public double Size   //doesn´t resize the UserControl!!!
{
   get { return size; }
   set { Width = Height = size = value; }
}

我必须使用 ActualWidthActualHeight 属性吗? 我必须将 Width 属性 与 SizeActualHeight 等绑定吗? 我必须在这些属性之间使用任何事件吗? 怎么样?

当您设置高度到宽度到高度到宽度等时,很确定最终会导致堆栈溢出。您可以在 XAML 中使用元素绑定...

<Label x:Name="label" Width="{Binding ActualHeight, ElementName=label, Mode=OneWay}">Label</Label>