代码之家  ›  专栏  ›  技术社区  ›  Slaggg

在WPF中旋转窗口

  •  0
  • Slaggg  · 技术社区  · 14 年前

    我需要创建一个最大化的WPF应用程序,它在大约10个不同的屏幕之间旋转。每个屏幕将占据整个区域并显示不同的内容。

    我的问题是,为了达到我的目的,最好把什么放在窗户里?

    谢谢您!

    2 回复  |  直到 14 年前
        1
  •  2
  •   John Bowen    14 年前

    一个快速的方法是使用WPF的内置页面导航。通过将根窗口设置为NavigationWindow,并将每个视图都设置为从页面派生的类(类似于与用户控件或窗口一起使用),您只需将NavigationWindow.Source设置为指向要显示的页面(如web浏览器)的相对URI,然后根据需要进行切换。

        2
  •  0
  •   Wonko the Sane    14 年前

    这听起来像是一个典型的MVVM应用程序,这里太多了,无法详细介绍。Google MVVM或Model视图ViewModel,或拿起书本 Advanced MVVM 乔希·史密斯(被广泛认为是这方面的专家)。

    不过,这基本上就是你要拥有的:

    • 一个类ViewModel是需要绑定到的数据的抽象
    • 你想展示的每件事物的视图。视图只是用来保存用户界面的东西,不管是数据模板还是用户控件。每个视图都绑定到ViewModel

    视图是将“旋转”的东西(尽管WPF中的旋转意味着动画和/或转换)。你如何在它们之间切换取决于你,尽管听起来像是用调度器和动画完成的事情(例如,在幻灯片中的图片之间褪色)。

    这个问题对于这个论坛来说实在太宽泛了——在继续之前,你需要对WPF的基本原理做大量的研究。同样,MVVM是一个很好的开始方向。

    编辑:一些更低调的东西,根据操作要求
    这可能很简单,只要你能做到(并且仍然为每个内容创建单独的XAML文件):

    首先,为要显示的内容创建10个用户控件(XAML文件)。

    在主窗口上放一个“下一步”按钮。

    在代码隐藏中,处理下一个按钮的单击事件。在那里,按名称跟踪哪个用户控件可见。设置当前对可见性可见的项。折叠,然后设置下一个对可见性可见的项。可见。

    这当然是一个丑陋的解决方案,也不是很WPF-ish,但它会完成工作。