65.9K
CodeProject 正在变化。 阅读更多。
Home

C# 中的归纳呈现框架

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.75/5 (6投票s)

2005年1月15日

3分钟阅读

viewsIcon

33649

downloadIcon

272

一个用于构建归纳式用户界面的框架。

Sample Image - Inductive_Presentation.jpg

引言

在 MSDN 上阅读有关归纳式用户界面的文章时,我找不到任何适合在我自己的应用程序中使用的代码。 没有包含一个简单框架的小型库,用于在您自己的应用程序中构建此类东西。

在本文中,我不仅会再次解释如何自己构建归纳式用户界面的框架,而且还会为那些不想自己创建框架,但想直接使用此框架创建应用程序的人们提供一个框架。

什么是归纳式用户界面?

简而言之,归纳式用户界面是指没有经验的用户可以快速找到方向的界面。 他可以在没有任何预先学习的情况下开始使用用户界面执行任务。

虽然这些类型的用户界面对于没有经验的用户来说效果很好,但对于有经验的用户来说,使用这些类型的用户界面却是一场噩梦。

在构建任何东西之前,您应该在归纳式和演绎式用户界面之间做出明智的选择。 归纳式用户界面可能意味着您的软件的成功和彻底失败。 这取决于您的软件的目标受众是谁,以及您需要在您的应用程序中使用哪种类型的用户界面。 当然,您可以同时包含归纳式和演绎式用户界面。 选择完全取决于您。

组件设计

框架本身非常简单。 MVC 模式清晰可见; PagerModel 是该模式的模型(您可以从类的名称中看出)。 PagerView 是该模型的视图,PagerWindow 是控制器,包含视图和模型。

PagerModel 使用堆栈来跟踪历史记录。 这是维护页面历史记录的最佳方式,因为进入历史记录的最后一页也是我们在历史记录中向后翻一页时想要显示的首页。 对于我使用的另一个堆栈也是如此。 第二个堆栈用于从原始历史记录堆栈中弹出的页面。 这些需要放在第二个堆栈上,以便我们可以导航到历史记录中的下一页。

PagerModel 导航到页面时,它会触发一个事件,指示其当前页面已更改。 视图和控制器都已注册到此事件。 如果 PagerModel 类中的当前页面发生更改,则视图会自动通过事件处理程序更新自身。

PagerModel 更改时,PagerWindow 会自动更新工具栏按钮的状态。 这样,您就拥有了一个更松散耦合的模型,在扩展具有更多功能的模型、视图或控制器时,这具有很大的优势。

使用框架

我在源代码中包含了一个使用该框架的示例,其中包含两个页面。 一个页面链接到另一个页面。 这样您就可以了解框架的工作原理。

要使用该框架,您将需要一个或多个页面。 您可以简单地从 Page 类派生它们,并将您自己的控件放在上面。

接下来,您需要设置模型、视图和控制器。 以下代码片段初始化一个 PagerModel,并将页面插入为该模型的首页。 将该模型附加到 PagerWindow 并向用户显示该窗口。

PagerWindow window = new PagerWindow();
PagerModel model = new PagerModel();

model.HomePage = new MyHomePage();

window.Pager = model;
window.Show();

在页面之间导航非常容易设置。 在 Page 类中,有一个对 PagerModel 类的引用。 我们可以简单地使用以下代码片段导航到另一个页面

Pager.Navigate(new MyNextPage());

结论

该框架的功能远不止我在这里展示的这些。 如果您尝试使用该框架,您甚至可以使用它构建自己的帮助系统。 或将其用于其他目的。

我希望您喜欢阅读本文。 如果您有任何错误、意见、建议或问题。 请随时给我留言。

© . All rights reserved.