【问题标题】:Is there a wizard control in WPF? [closed]WPF中有向导控件吗? [关闭]
【发布时间】:2010-09-22 04:18:12
【问题描述】:

WPF 中是否有任何向导类型的控件?我需要可以前进和后退并使用选项卡选择特定项目的功能,该项目将显示嵌套项目的详细信息。我可以使用 TabControl 控件,但选项卡项是动态的,因此我不能将区域嵌套在选项卡项内。

【问题讨论】:

标签: wpf wizard


【解决方案1】:

WPF 有一个内置的导航基础设施:

WPF Navigation Overview

还可以查看wizard sample

【讨论】:

  • .NET 示例不再作为 SDK 的一部分提供,因此您需要在 Code Gallery 上查找它们。即使这样,上面链接的向导示例似乎也没有直接的等价物。
  • This seems to be 一个与向导非常相似的示例。
【解决方案2】:

我用于基本向导的另一种简单方法是使用多个网格并在单击按钮时更改可见性属性,使用 int 来跟踪“步骤编号”

    <Grid Name="Page1">
        <TextBlock>Page 1</TextBlock>
    </Grid>

    <Grid Name="Page2" Visibility="Hidden">
        <TextBlock>Page 2</TextBlock>
    </Grid>

【讨论】:

  • 能详细解释一下int step number吗?
  • 我只是用了一个int来跟踪页码,所以从1开始,当你点击next的时候把它改成2。然后用int来控制一个按钮是说Next还是Finish,或者允许a 后退操作或禁用。相当粗糙,但如果你只需要做一些简单有效的事情,它就可以工作
  • 我不需要一个完整的解决方案,并认为这种方法可能很麻烦,但您的示例显示了它是多么容易。
【解决方案3】:

你可以试试开源Avalon Wizard

【讨论】:

  • 你的链接是404。
【解决方案4】:

检查This link。您可以使用扩展的 wpf 工具包创建精彩的向导。

【讨论】:

  • “扩展 WPF Toolkit™ 是根据 Xceed Software, Inc. 社区许可提供的。”这不能用于商业用途(免费)。如果您使用此解决方案,请记住这一点。
【解决方案5】:

在 codeproject 上找到了这个很好的示例,它应该可以为您提供所需的一切:

http://www.codeproject.com/Articles/31837/Creating-an-Internationalized-Wizard-in-WPF

【讨论】:

  • 您介意添加一个非常高级的文章概述吗? (也许只是一两句话。)我知道很多人习惯于粘贴一个链接作为他们的答案,但即使你只是列出一些涉及的主要类名称,这也会给读者一些搜索的东西以防此链接在将来某个时候失效。
  • 那篇 CodeProject 文章已于 2021 年 1 月 22 日被删除。
【解决方案6】:

MVVM Wizard - 这样的用法(需要 DI 容器,在第一次导航时创建视图)

<controls:Wizard>
    <controls:WizardStep ViewType="{x:Type test:View1}"  />
    <controls:WizardStep ViewType="{x:Type test:View2}" />
    <controls:WizardStep ViewType="{x:Type test:View3}" />
</controls:Wizard>

或像这样(不需要 DI,但会立即创建所有视图)

<controls:Wizard>

    <controls:WizardStep>
        <test:View1 />
    </controls:WizardStep>

    <controls:WizardStep>
        <test:View2 />
    </controls:WizardStep>

    <controls:WizardStep>
        <test:View3 />
    </controls:WizardStep>

</controls:Wizard>

【讨论】:

    猜你喜欢
    • 2011-06-27
    • 2011-05-14
    • 2010-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-09
    • 1970-01-01
    相关资源
    最近更新 更多