2013-12-19 29 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

也許你有想法我該如何從頁面開始窗口內的頁面.. –