【问题标题】:What are the point in layouts/panels?布局/面板有什么意义?
【发布时间】:2014-06-25 02:49:16
【问题描述】:

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

例如停靠面板,使用停靠属性可以将对象放在左侧、右侧、底部、顶部、lastchildfill。您可以使用属性 DockPanel.Dock = "Left" 将文本框停靠在左侧,但为什么我不能自己将其移动到左侧呢?

【问题讨论】:

  • 是的,您可以,但请注意,当您调整窗口大小时,它的行为可能会有所不同。在此处查看不同容器的描述:msdn.microsoft.com/en-us/library/… 和此处:codeproject.com/Articles/140613/…
  • Panel 容器允许您的布局通过动态大小和内容更加灵活。例如,使用StackPanel,您可以轻松地从代码中添加内容。面板还允许更轻松的对齐选项(中心、顶部等),这些选项将为您完美对齐控件。为什么要自己做! :)

标签: c# wpf


【解决方案1】:

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

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

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

【讨论】:

  • 我完全同意你的看法。我曾在 WPF 中从事过一个项目,但我们从未使用过设计器。一切都用 XAML 编码。结合 MVVM 模式,WPF 开发是我必须使用的最佳框架之一。
【解决方案2】:

您可以手动移动控件,但是当您添加新控件或调整窗口大小时,不同的布局面板可以自动处理控件定位。

请查看描述不同类型容器的description on MSDNon CodeProject

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 2011-03-01
    • 2017-11-23
    • 2013-02-01
    • 1970-01-01
    相关资源
    最近更新 更多