问题 是否没有内置的C#GUI布局?


我习惯了Java中的GUI框架以及QT GUI框架,我已经习惯了各种布局管理器。似乎C#没有内置任何布局管理器,或者我错过了什么?

2年后编辑

我只是想向这个问题的任何读者指出,在后视中,我的问题是错误的。通过适当地锚定和对接子控件,需要Java和QT4的布局管理器几乎不存在。


4990
2017-11-30 17:03


起源



答案:


WPF确实有布局管理器,请参阅:

http://msdn.microsoft.com/en-us/library/ms745058.aspx

如果你来自Java背景,那么“面板元素和自定义布局行为“将特别感兴趣。


8
2017-11-30 17:06



这里有几个问题:要获取System.Windows.Controls命名空间,您需要在.NET下添加对PresentationFramework的引用,但问题是它会导致System.Windows.Forms.Panel等对象之间的命名空间冲突。 System.Windows.Controls.Panel。到底发生了什么事,为什么这么难? - anon58192932
我放弃了,只是去了System.Windows.Forms.FlowLayoutPanel - anon58192932


答案:


WPF确实有布局管理器,请参阅:

http://msdn.microsoft.com/en-us/library/ms745058.aspx

如果你来自Java背景,那么“面板元素和自定义布局行为“将特别感兴趣。


8
2017-11-30 17:06



这里有几个问题:要获取System.Windows.Controls命名空间,您需要在.NET下添加对PresentationFramework的引用,但问题是它会导致System.Windows.Forms.Panel等对象之间的命名空间冲突。 System.Windows.Controls.Panel。到底发生了什么事,为什么这么难? - anon58192932
我放弃了,只是去了System.Windows.Forms.FlowLayoutPanel - anon58192932


WPF和Windows窗体都提供了布局功能(WPF在这方面要好得多)。

通过使用控件的Dock和Anchor属性,您也可以在Windows窗体中实现中等复杂的布局。就个人而言,我学到了可以实现的目标以及如何实现 Petzold关于WinForms的书。如果您无权访问该书,请阅读 这篇短文


3
2017-11-30 17:13





chibacity是对的,WPF加载了布局管理器,所有这些都非常好。

但是,如果你要沿着WinForms路线走下去,你就会遇到TableLayoutPanel,FlowLayoutPanel和SplitContainer。以及通常的手动Panel和GroupBox控件。


1
2017-11-30 17:09





不,你没有遗漏任何东西。

.NET没有用于Winforms / Webforms / Console开发的内置布局管理器。

可能是因为Visual Studio拥有优秀的设计师,可以避免这种需求。

WPF和Silverlight( 运用 XAML确实有它们,虽然它们与Java的不完全相同。


0
2017-11-30 17:05



一个优秀的设计师 不 避免了对布局管理器的需求。 - Matti Virkkunen
我建议不必将一组消费者平台作为多样化的目标,这使得静态布局成为一种更合理的方法。如果Java只对静态布局感兴趣,我想GUI设计师会简单得多。 - Dilum Ranatunga


WPF和Silverlight具有不同的“面板”,其工作方式类似于其他语言的布局管理器。


0
2017-11-30 17:06