【问题标题】:Contentcontrol or dockpanel for navigation wpf用于导航 wpf 的 Contentcontrol 或停靠面板
【发布时间】:2018-11-16 14:33:14
【问题描述】:

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

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

  2. 可以用这个控件(dockpanel)代替Contentcontrol来显示应用用户控件吗?

  3. Contentcontrol 有类似的代码吗?

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

【问题讨论】:

  • 命名 DockPanel 和 ContentControl 的共同点比较简单,因为它们非常不同。您是否尝试阅读 Microsoft 文档? MS 为 .net 提供了优秀的文档。

标签: c# wpf user-controls contentcontrol dockpanel


【解决方案1】:

像 WinForms 一样编码 WPF 的人的标准免责声明: 首先;像这样的直接 UI 操作是个坏主意。你应该 正在修改视图模型并允许绑定系统更新 用户界面。使用 MVVM 模式; WPF 将为您您而不是 反对你

对于您的实际问题:

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

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

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

【讨论】:

    猜你喜欢
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-15
    • 1970-01-01
    相关资源
    最近更新 更多