我试图实现具有预定义大小(宽度和高度)的控件或用户控件。
我有一个定义大小的枚举:
public enum ControlSizes
{
// Width x Height
ControlSizeA, // 310 x 220
ControlSizeB, // 310 x 450
ControlSizeC // 310 x 680
}
然后在我的控制中,我定义了一个 DependencyProperty 和一个回调方法来允许 Size 规范:
public static readonly DependencyProperty ControlSizeProperty = DependencyProperty.Register
("ControlSize",
typeof(ControlSizes),
typeof(CustomControl),
new PropertyMetadata(ControlSizes.ControlSizeA, OnControlSizePropertyChanged));
public ControlSizes ControlSize
{
get { return (ControlSize)GetValue(ControlSizeProperty); }
set { SetValue(ControlSizeProperty, value); }
}
private static void OnControlSizePropertyChanged(DependencyObject source, DependencyPropertyChangedEventArgs e)
{
CustomControl customControl = source as CustomControl;
Size controlSize = ControlSizeConverter.ConvertToSize(customControl.ControlSize);
customControl.Width = controlSize.Width;
customControl.Height = controlSize.Height;
}
主要思想是具有预定义的尺寸,并且在设计时能够选择一种尺寸,并以该可用尺寸放置控件。
问题是没有正确保存或分配宽度和高度。
有任何想法吗?
提前致谢。