用于导航 wpf 的 Contentcontrol 或 dockpanel

Contentcontrol or dockpanel for navigation wpf

我使用Contentcontrol来显示程序的用户控件,现在关闭用户控件时出现问题搜索后,我找到了一个示例,用户控件加载在DockPanel上
现在我的问题:

  1. 这两个控件有什么区别? (Dockpanel 与 ContentControl)

  2. 是否可以使用此控件(停靠面板)而不是 Contentcontrol 来显示应用程序用户控件?

  3. Contentcontrol有没有类似的代码?

    ucChild ChildWindow = new ucChild();  
    ChildWindow.ParentControl = this.UIPanel;  
    UIPanel.Children.Clear();  
    UIPanel.Children.Add(ChildWindow);
    

Standard disclaimer for people coding WPF like it is WinForms: First off; direct UI manipulation like this is a bad idea. You should be modifying a view model and allowing the binding system to update the UI. Use the MVVM pattern; WPF will work for you instead of against you

针对您的实际问题:

  1. 一切。我是说;它们都继承自 FrameworkElement 但就共性而言仅此而已。

    • 一个DockPanel顾名思义,一个Panel。那是;它控制一个或多个子元素的布局和大小。具体来说,DockPanel 擅长以下情况:您希望一个元素用完一整列宽度,然后另一个元素跨越顶部(前一个元素除外)并让最后一个元素填充剩余的 space.
    • A ContentControl 基本上是一个占位符,它的目的是公开一个可设置的(最重要的是,可绑定的)Content 属性,您可以将另一个控件塞入其中。更好;你可以在那里放一个实际的 object 并使用 DataTemplate 来控制显示(这种方法符合 MVVM)。
  2. 你真的不能用一个替换另一个,见上文

  3. 没有。 ContentControl 不是 Panel,因此没有 Children 属性。