2011-08-22 77 views
2

我對個人項目有個想法。我知道在Windows窗體中完成它的一種方法(我不再希望使用它)。基本上我可以(在WinForms中)將所有東西繪製到屏幕上(表格),然後當我需要切換應用程序的視圖/狀態時,只需在舊的東西的位置重新繪製新的東西。如何在WPF應用程序中實現不同的查看狀態

但是我們如何在WPF中擁有不同的狀態?有沒有這樣做的「正確」或「適當」方式?像這樣的東西覆蓋文檔中的某個地方?

我想我自己做的搜索,但我在尋找合適的信息不知道究竟是什麼,尋找和當前的嘗試,至今沒有取得有益的(甚至是相關的)結果。

任何幫助都將不勝感激。我對WPF很陌生,但在過去一週裏取得了很多進展!

謝謝!

P.S.:我只是想說些什麼。如果解決方案是繪製一個屏幕所需的內容,以及何時需要顯示下一個屏幕,只需處理/隱藏所有內容並創建/顯示新內容,那麼我們將如何解決這個問題?因爲我們不能/不應該在運行時更改XAML標記,所以我們可以嗎? :/

回答

1

我不知道如果我理解你真正想要的。但這裏是我的想法:

  • 您可以使用多個窗口並顯示/隱藏他們相應
  • 您可以使用WP(MSDN
  • 幀/頁功能,如果你真的需要,你可以加載你的XAML並取出最上面的內容在你的窗口,並加載的內容替換它
  • 您可以使用VisualStateGroup功能來改變當前窗口的外觀

我想你會很樂意與第二個解決方案

+0

謝謝@CKoenig - 我正在查看您的鏈接。 – bendr

2

不知道如何在你的WinForms繪製你的意見/狀態(Graphics對象上直接畫?)。

的最接近你描述的是VisualStateManager。您可以使用它來在單個XAML中靜態定義多個視覺狀態並在它們之間傳輸(如果需要,請使用平滑動畫)。

如果你做了什麼是顯示不同的形式與顯示/ ShowDialog的(),則相當於是使用不同的Windows和顯示/隱藏它們。

如果你只是清除/添加控件到窗體,那麼您可以在WPF做的完全一樣。 WPF中的大多數控件在Forms中都有ContentChildren屬性,而不是Control.Controls

相關問題