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; }
}
我必须使用 ActualWidth
和 ActualHeight
属性吗?
我必须将 Width
属性 与 Size
、 ActualHeight
等绑定吗?
我必须在这些属性之间使用任何事件吗?
怎么样?
当您设置高度到宽度到高度到宽度等时,很确定最终会导致堆栈溢出。您可以在 XAML 中使用元素绑定...
<Label x:Name="label" Width="{Binding ActualHeight, ElementName=label, Mode=OneWay}">Label</Label>
我有一个 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; }
}
我必须使用 ActualWidth
和 ActualHeight
属性吗?
我必须将 Width
属性 与 Size
、 ActualHeight
等绑定吗?
我必须在这些属性之间使用任何事件吗?
怎么样?
当您设置高度到宽度到高度到宽度等时,很确定最终会导致堆栈溢出。您可以在 XAML 中使用元素绑定...
<Label x:Name="label" Width="{Binding ActualHeight, ElementName=label, Mode=OneWay}">Label</Label>