歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

使用WPF來創建 Metro UI


當我第一次運行Zune時,我為這些美麗的UI所折服。當時就說這肯定不是用WPF做的,因為這些字體是如此的清晰而且UI反映的也非常快速。。而且我從維基百科上也了解到Zune的第一個版本是2006年發布的,而WPF與.NET 3.0卻是 2006 年11月發布的。
那麼問題來了,如果它不是WPF做的,那它是用什麼技術做到的呢?為了找到答案,我使用Process Explorer工具來看看Zune是如何啟動的,默認情況下,.NET應用程序都是被用黃色高亮顯示的。

很好,這說明Zune肯定是.net 應用程序了,然後我們可以看到Zune需要如下庫

然後用 Reflector一看: upload/2012_06/120611055126755.png

如你所見,根名空間是 Microsoft.Iris. 我在Google上搜到這玩意看上去就像某種原始的WPF組件 -- MCML
WPF能創造出類似的UI嗎? 第一個難點就是就是設定WindowStyle為None。因為這有這有才能讓標題欄以及邊框不可見

那該如何移動窗體呢? 首先添加一個Shape(Rectangle),然後為它訂閱PreviewMouseDown事件處理。   01 // Is this a double-click? 02 if (DateTime.Now.Subtract(m_headerLastClicked) <= s_doubleClick) 03 { 04   // Execute the code inside the event handler for the 05   // restore button click passing null for the sender 06   // and null for the event args. 07   HandleRestoreClick(null, null); 08 } 09    10 m_headerLastClicked = DateTime.Now; 11    12 if (Mouse.LeftButton == MouseButtonState.Pressed) 13 { 14   DragMove(); 15 }

Copyright © Linux教程網 All Rights Reserved