1

对于 OSS 项目,我正在尝试以编程方式将控件添加到 WinForms 视图中。我想让这些控件像在 Visual Studio 设计器中一样可编辑和可调整大小。我一直在使用 Controls.Add(label).. 以编程方式添加。但我正在努力研究如何使 UI 可编辑。

我假设它会使用 DesignMode - 但我只能找到这些属性的 getter 而不是 setter。简而言之 - 有没有办法以编程方式在 WinForms 中启用和禁用 DesignMode?

我还没有调查 WPF - 也许那将能够有可编辑的控件?

非常感谢,很抱歉圣诞节刚过就很痛苦.. T

4

3 回答 3

4

实际上有一种方法可以像在 VS 设计器中一样使 UI 可编辑。您必须在表单上托管 winforms 设计器。此信息可能会有所帮助:http: //msdn.microsoft.com/en-us/magazine/cc163634.aspx

于 2009-12-27T21:43:22.073 回答
2

如alexm 所述,它在 WinForm 中可用。不幸的是,对于 WPF 设计器来说,情况并非如此。在那里你必须实现你自己的设计器。

于 2009-12-27T21:51:53.093 回答
1

据我所知,Designer 功能是在 Visual Studio 中实现的,而不是 WinForms 运行时库的一部分。DesignMode 属性是只读的,因为它提供有关执行上下文的信息;这不是可以即时更改的(附带说明:此属性并不像人们希望的那样易于使用)。

如果您想让 UI 在运行时可编辑(即更改控件的大小/布局),则必须手动实现很多行为(例如 OnMouseDown 处理程序等)。如果您想做诸如绘制带有可抓取角的边界框之类的事情,您可能需要深入研究自定义绘图。

我不确定 WPF,因为我对它的经验要少得多,但是关于 SO 的这个问题有一些关于使控件在运行时可调整大小的信息。

于 2009-12-27T21:29:50.697 回答