2013-12-19 123 views
1

我想创建一个简单的向导与创建向导一些澄清

  1. 3页第1页刚刚下一个按钮
  2. 第2页有下一个和以前
  3. 第3页以前有过,并完成

我已经创建了页面,并添加了他们需要的按钮,并且在我打电话给下一个页面的事件中,例如在页面1中的按钮单击中,我添加了以下代码

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    p2 = new Page2(); 
    NavigationService.Navigate(p2); 
} 

在主窗口cs中,我将继承改为NavigationWindow而不是Window,也在xaml中。目前它的工作,但我有3个问题。

  1. 显示的页面是主窗口的一部分,我怎么能避免它,因为当我运行它的按钮的地方是不是像我放在设计师?它被改变了。
  2. 当前在Grid中的按钮,我应该把它们放在不同的控件中(按钮的位置应该像页面左边的任何向导)?
  3. 如何避免页面右上方的导航箭头?

谢谢!

回答

2

要回答你的反向questsions,

3.我怎样才能避免在页面右上角屏幕的导航箭头?

我有一个开源库http://winchrome.codeplex.com/以几种方式重新设置导航窗口的样式。例如,这些都是NavigationWindow小号

example NavigationWindow s

总之你刚刚风格的NavigationWindow,只显示你想要的部分。

2.目前在Grid中的按钮,我应该把它们放在不同的控件中(按钮的位置应该像页面左边的任何向导)?

如果你从WinChrome的样式,然后你会看到,它只是rebuiliding的UI,只要你想,并提供ContentPresenter牵你的页面的情况。例如VS2012 style在窗口上应用了很多样式,但避免添加后退和前进按钮,而Win7 style以Win7样式重新构建后退和前进。

如果你这样做,你将需要一种方法将启用或可见状态传递给页面外的按钮。看看http://www.codeproject.com/Articles/8197/Designer-centric-Wizard-control如何在Winforms中做到这一点。在WPF中,您可以从Page s中创建WizardPage类,其中CanBack,CanNextIsFinish属性,或者可以替代地定义附加属性来执行相同的操作(在VS2012.cs中有我们定义辉光颜色的示例)

最后

1.这是显示在主窗口的一部分的页面,我怎么能避免它,因为当我运行它的按钮地方不喜欢我把设计师?它被改变了。

我需要看一些代码来评论你是如何做到的,但如果你看看WinChrome中的任何演示程序,那么你可以看到我是如何做到的,没有问题。

祝你好运!

+0

谢谢!,这是免费的吗?这是窗口的代码public MainWindow() InitializeComponent(); this.Content = new Page1(); } –

+0

这是xaml -

+0

也许你有想法我该如何从页面开始窗口内的页面.. –