我有一个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; }
}
我必须使用ActualWidth
和ActualHeight
属性吗?
我必须将Width
属性与Size
,ActualHeight
等绑定在一起吗?
我必须在这些属性之间使用任何事件吗?
怎么样?
答案 0 :(得分:3)
非常肯定,当你将高度设置为宽度到高度到宽度等时,最终会出现堆栈溢出。你可以在XAML中使用Element绑定来完成...
<Label x:Name="label" Width="{Binding ActualHeight, ElementName=label, Mode=OneWay}">Label</Label>