c# - 布局/面板有什么意义?

标签 c# wpf

我刚刚开始学习 WPF,为了将控件添加到窗口,我只是将它们从工具箱移到窗口上。然后我可以继续移动它们以将它们放在我想要的地方。现在我已经了解了布局/面板、堆栈面板、 Canvas 、停靠面板等,我正在努力理解为什么如果您可以自己在屏幕上拖动和移动对象/控件,它们会有用。

例如停靠面板,使用停靠属性,您可以将对象放在左侧、右侧、底部、顶部、最后一个子填充。您可以使用属性 DockPanel.Dock = "Left"将文本框停靠在左侧,但为什么我不能自己将它移到那里?

最佳答案

首先,不要浪费时间将控件拖/放到 WPF 应用程序中。通过以这种方式放置控件,您将严重限制您在 WPF 中的设计潜力。大多数认真的 WPF 设计人员甚至都懒得拖动控件,他们会手动键入所有 XAML。可以说,这就是 WPF 的设计方式。利用 XAML 可以让您的布局以 WinForms 做梦也想不到的方式完全动态化,但您必须手动编写 XAML 代码。

你知道这是怎么回事吗?设计 WPF 应用程序时不要拖放控件!我去过的每个 session 都强调这个事实!网格面板是 WPF 布局的重要组成部分,对于让您的控件在您期望的位置结束是至关重要的。

学习 WPF 最困难的部分是弄清楚它不是具有漂亮图形的 WinForms。这是一个完全不同的野兽,具有陡峭的学习曲线!一开始手工编写 XAML 代码非常乏味,但是一旦您了解了所有控件的名称和重要属性,您将比旧的拖放方法更快地创建 UI。

关于c# - 布局/面板有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24391625/

相关文章:

WPF 去除 DropShadow 效果

c# - 即使启用了 ClearTypeHinting,WPF 中的文本也很模糊?

c# - 什么是实现搜索表单的好方法?

c# - MSAL 是否仅适用于 Azure 和 Microsoft 身份平台?

c# - 将文本框放置在 TableLayoutPanel 上时,Dock=Fill 不起作用

WPF,C# : Draw a line onto existing bitmap in image control

c# - 如何在 Silverlight 中加载 xml 文件并从中读取?

c# - XNA 二维视野

wpf - WTF WPF TabControl?

c# - 如何找出产生 XamlParseException 的 XAML 文件