)。如何设置弹出编辑器从属性网格调用时显示的默认大小。
这适用于所有熟悉Windows窗体的属性网格编辑器的人。
你知道如果你把一个List属性抛给一个Grid,它会显示一个小按钮,如果你按下它会弹出它的默认子值编辑器。我实际上将编辑器用于另一种类型的对象,但我给出了这个例子,所以你知道我指的是什么。这是一张照片,至少在链接存在之前是这样的:
http://www.perpetuumsoft.de/sf/en/ims/rssSilverlight/GetStart/image032.jpg
答案 0 :(得分:1)
我的理解是(对于模态编辑器和非模态编辑器),完全直到显示控件的奇思妙想。如果涉及的UITypeEditor
选择一个大的形式,它将会很大......
改变这种情况的唯一方法是定义自己的UITypeEditor
并将其与所涉及的类型相关联(有时可能与TypeDescriptor.AddAttributes(...)
相关联,这会创建运行时希望显示的相同形式,但在显示之前调整大小。
答案 1 :(得分:0)
您可以通过继承标准System.ComponentModel.Design.CollectionEditor
来实现此目的,然后在CreateCollectionForm
覆盖中设置所需的大小。
装饰您的集合以使用自定义集合编辑器。 下面是一个以全屏启动集合编辑器的示例
class FullscreenCollectionEditor : System.ComponentModel.Design.CollectionEditor
{
protected override CollectionForm CreateCollectionForm()
{
var editor = base.CreateCollectionForm();
editor.WindowState = System.Windows.Forms.FormWindowState.Maximized;
return editor;
}
public FullscreenCollectionEditor(Type type) : base(type)
{
}
}
然后用[Editor(typeof(FullscreenCollectionEditor), typeof(UITypeEditor))]
装饰您的集合属性,即
public class MyModel
{
[Editor(typeof(FullscreenCollectionEditor), typeof(UITypeEditor))]
public List<FileModel> Files { get; set; }
}