【问题标题】:User Controls and Windows in WPFWPF 中的用户控件和窗口
【发布时间】:2016-01-14 08:06:46
【问题描述】:

我正在制作一个 wpf 应用程序。我对 WPF 很陌生。 我有一个主布局屏幕,其中包含背景内容和其他屏幕,这些屏幕具有布局以及这些屏幕独有的更多控件。

我这样做是:

主布局屏幕是一个窗口,其他专用屏幕是用户控件。

对于每个专门的屏幕,我都这样做:

Application.Current.MainWindow mw;
mw.Content = nameOfCurrentUserControl;

这个主意好吗?

【问题讨论】:

  • 回答这个问题:问问自己:它是否适合您的需求?这样做的缺点是隐式数据绑定可能不起作用,并且必须从 C# 代码而不是 XAML 完成显式数据绑定。
  • 我想过类似的路线,但我没有清晰的画面,是 WPF 的新手。你能举一个显式数据绑定的例子吗?或任何可以提供帮助的链接。
  • 隐式数据绑定来自设置元素的数据上下文。然后子元素将被隐式数据绑定。您可以通过显式设置数据上下文来更改此设置。它看起来像这样:nameOfCurrentUserControl.DataContext = myDataObject(你可以更深入,但我认为这超出了问题的范围

标签: c# wpf


【解决方案1】:

如果我理解正确,您想要一个具有不同页面的程序。就像安装向导一样。

然后您要做的是创建一个窗口(就像您所做的那样)并在其中添加一个Frame。 然后创建Pages 并在每个页面中创建所需的布局。

然后在主窗口中,创建页面实例 (mySecondPage = new SecondPage()),然后 Navigate 使用MyFrame.Navigate(mySecondPage) 从一个页面到另一个页面将它们加载到主窗口的框架中

这里有更多关于导航的信息:http://paulstovell.com/blog/wpf-navigation

【讨论】:

  • 谢谢!我会检查一下。使用页面优于用户控件有什么优势?
  • 我同意你的观点,这将是一个很好的页面用例。但是,PagesNavigationContainer 你需要使用,对应用程序的限制相当大。
  • @Domysee 页面可以与NavigationContainer一起使用吗?
  • @TimothyGroote NavigationContainerFrame。 afaik 的限制是一样的。您不能有多个活动视图(例如 TabControl 中的集合),视图更改时没有动画(例如淡入/淡出),可能还有一些我目前不记得的动画。
猜你喜欢
  • 1970-01-01
  • 2011-01-23
  • 1970-01-01
  • 1970-01-01
  • 2012-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多