【问题标题】:Swap out parts of the UI when the user takes a given action当用户执行给定操作时交换部分 UI
【发布时间】:2012-09-09 02:52:19
【问题描述】:

我想在我的 WPF 应用程序中有一个导航功能,当用户采取给定的操作(即单击一个按钮)时,它将交换部分 UI。将这些 UI 片段放在它们自己的窗口中并不合适。我一直在使用面板并使用visible=true 属性将它们换出,但在单个窗口中管理多个面板变得很麻烦。

【问题讨论】:

  • 为什么不创建 UserControls 并在您想要更改时将它们换入和换出。
  • 您可以重新设置选项卡控件的样式,其中每个选项卡代表一个页面。如果隐藏标签栏并手动切换标签应该是类似的效果。当然,MarkHalls 的想法也很有效,而且可能会更简洁一些。
  • 谢谢你们俩。我可能会使用 MarkHall 的方法,因为我真的不想使用页面。

标签: c# wpf navigation


【解决方案1】:

我们使用Caliburn Micro Screens & Conductors 进行了您尝试的操作:

  • 在 View 上有一个名为 ActiveItem 的 ContentControl。
  • 使用 ActivateItem Conductor 替换 ViewModel 上的 ActiveItem。

对于换出效果,我们确实使用两个触发器(在 ActiveItem 更改时从 ViewModel 引发)为 ActiveItem 设置动画。一个用于换入的触发器,一个用于换出的触发器(此动画所做的只是将边距从偏移量更改为适当的值,并稍加延迟)。

您不仅可以为 ActiveItem 扩展此方法,还可以为要换出的每个控件扩展此方法,因此我希望这会给您一个想法。

【讨论】:

    猜你喜欢
    • 2021-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-29
    • 2016-04-30
    • 1970-01-01
    • 2014-11-30
    相关资源
    最近更新 更多