c# - WPF - 内容部分控件

标签 c# wpf visual-studio-2008 .net-3.5

我是 WPF 的新手,正在努力寻找合适的控件。

我正在编写一个包含两个部分的 WPF 应用程序。左侧是类似 Outlook 的侧边栏(Odyssey 控件)。

对于其他所有内容,我想要一个控件,我可以根据侧边栏中的内容轻松交换内容。

因此,用户在边栏中选择一个选项,主要部分中的所有控件都会发生变化。

如果我在 Windows 窗体中编写此代码,我可以只创建几个面板,然后显示相关的面板(并隐藏其他面板)。当我在 WPF 中尝试此操作时,您可以看到下方面板的内容。我知道我可以让它们不可见,但我觉得我可能会以错误的方式处理这个问题。

那么问题来了。处理要更改的应用内容部分的最佳方式是什么(在 WPF 中)。

最佳答案

根据您的示例(根据侧面板中选择的内容切换显示的内容)我建议重新设计 TabControl因为那真的是标签切换,即使它看起来不像。查看this举个不错的例子,设置 TabStripPlacement向左,你会有一个好的开始。

根据您的数据设置方式 Master-Detail pattern 可能是另一个不错的选择。

如果您想以编程方式切换所有内容,您需要为 UI“面板”使用 ContentPresenter 和 DataTemplates。 This article Josh Smith 是关于 MVVM 的,但他的示例应用程序基本上就是您要寻找的模式。

关于c# - WPF - 内容部分控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1657771/

相关文章:

visual-studio-2008 - 调试命令(step over/into)导致未处理的异常

.net - 最佳实践 - WPF 自定义控件库 - 组织文件、文件夹和命名空间

asp.net - 使用 ADO.NET 在 VB 2008 中的不同网页上显示数据库

c# - 将 IEnumerable 转换为 ArrayList O(N) 还是 O(1)?

c# - 我可以在 EF Core 中使用带有外键的接口(interface)并使用 Fluent API 将其设置为外键吗?

wpf - 命令绑定(bind)到用户控件拖放

WPF 依赖属性解决方法

c# - Windows.Forms Application.Run() 中无法追踪的异常

c# - 有时我如何验证某些字段?

c# 在 for 循环中创建对象的新实例