WPF UserControl的宽度与高度相同

时间:2015-09-08 11:01:07

标签: wpf wpf-controls

我有一个UserControl,我希望永远在一个正方形。高度变化必须将宽度更改为相同值,反之亦然。高度和宽度我想隐藏(XAML和属性编​​辑器),我想创建一个新属性“大小”。我试图通过“[可浏览(假)]”隐藏属性,但在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等绑定在一起吗? 我必须在这些属性之间使用任何事件吗? 怎么样?

1 个答案:

答案 0 :(得分:3)

非常肯定,当你将高度设置为宽度到高度到宽度等时,最终会出现堆栈溢出。你可以在XAML中使用Element绑定来完成...

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