我一直在使用Expression Blend來複制WPF 4.0控件的默認模板。我正在編寫一篇關於擴展WPF控件的CodeProject文章,並且我想推薦一個免費工具作爲替代。你會建議什麼?謝謝你的幫助。如何抓取WPF 4.0控件的默認模板?
回答
在以前的WPF版本中,這些樣式在此MSDN鏈接處可用。您可以嘗試更改舊版本,以查看下載鏈接。不幸的是,這還沒有更新.NET 4.0。
在這種情況發生之前,如果您可以使用Reflector和BamlViewer插件。一旦你的安裝,你會使用開放式高速緩存中打開這些組件之一:
- PresentationFramework.Aero
- PresentationFramework.Classic
- PresentationFramework.Luna
- PresentationFramework.Royale
確保選擇4.0.0.0版本。然後展開程序集和關聯的資源節點。選擇資源項並按空格鍵查看反彙編程序。然後您可以看到BAML文件,您可以使用BamlViewer查看XAML。唯一的缺點是你失去了原來的格式。
編輯:
的.NET 4層的樣式可以從here下載。更具體地說,第二段中的Default WPF Themes鏈接。或者,您可以鑽取特定控件以查看Style示例。
MSDN列出他們的Silverlight控件:
http://msdn.microsoft.com/en-us/library/cc278069(VS.95).aspx
但我找不到WPF控件類似上市。相應的WPF頁面是這樣的,神祕地缺少一個模板列表:
http://msdn.microsoft.com/en-us/library/ms753328.aspx
無論如何,很容易抓住模板。從這裏:
http://msdn.microsoft.com/en-us/magazine/cc163497.aspx#S1
Control ctrl = GetControl(); // any type deriving from Control
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = new string(' ', 4);
settings.NewLineOnAttributes = true;
StringBuilder strbuild = new StringBuilder();
XmlWriter xmlwrite = XmlWriter.Create(strbuild, settings);
// Save the template to the XAML writer
XamlWriter.Save(ctrl.Template, xmlwrite);
XamlPadX有一個按鈕「打開/關閉樣式窗口」,顯示小對話框,它允許您查看樣式。
請看看這篇文章:http://eggheadcafe.com/tutorials/aspnet/d1ad0a33-d815-4083-8e97-c234fd661095/wpf-controls-default-style-or-template-by-extending-the-wpf-designer-in-visual-studio-2010.aspx。我已經擴展了WPF設計器,包括通過所選控件的上下文菜單獲取默認樣式或模板。只需構建Visual Studio解決方案並設置註冊表項即可加載元數據。缺點是XAML格式與Expression Blend不同。
現在可以找到用於WPF 4.0控件的控件模板here。
但是,您可以通過使用Style.BasedOn
屬性擴展或覆蓋控件模板,而無需重現原件。它在this blog post中有解釋。
或安裝的Expression Blend(試行),並轉到以下位置:
C:\Program Files\Microsoft Expression\Blend 4\SystemThemes\Wpf
- 1. 如何模仿用於WPF控件的默認模板?
- 2. 如何讓WP7控件的默認風格和控制模板?
- 3. 保持默認與控件模板
- 4. WPF自定義控件:更改附加模板默認值
- 5. 如何爲WPF中的自定義控件提供兩個默認模板?
- 6. 如何訪問並向WPF模板中的控件提供默認值?
- 7. ASP.NET自定義控件 - 默認模板?
- 8. 重寫默認控件模板 - ListTitleViewSelectorMenu
- 9. WPF控件默認大小
- 10. 默認的驗證模板不是WPF
- 11. 控件模板WPF
- 12. 如何獲取WPF中控件屬性的默認綁定模式?
- 13. 如何在ListView控件中設置默認模板
- 14. WPF中的控件模板
- 15. 如何以編程方式爲模板控件創建默認模板?
- 16. 如何更改WPF控件模板
- 17. SurfaceCheckBox默認模板
- 18. 自定義WPF控件的默認值
- 19. 更改新窗口和用戶控件(WPF)的默認Visual Studio模板
- 20. TextBox默認模板
- 21. WPF什麼是WPF Extended ToolKit的ColorPicker的默認模板?
- 22. 應用默認控件模板只有一個控制
- 23. WPF按鈕控件模板
- 24. WPF DataGrid控件模板
- 25. 設置控件模板[WPF]
- 26. WPF GroupBox控件模板
- 27. 分享WPF控件模板
- 28. wpf用戶控件模板
- 29. 默認iPhone模板
- 30. 有沒有辦法根據默認模板編輯控件的模板?
不幸的是,XamlPadX尚未爲WPF 4.0更新。它沒有任何新的控件,如日曆。 – 2010-08-19 23:25:44