使用WPF来创建 Metro UI
使用WPF来创建 Metro UI
当我第一次运行Zune时,我为这些美丽的UI所折服。当时就说这肯定不是用WPF做的,因为这些字体是如此的清晰而且UI反映的也非常快速。。而且我从维基百科上也了解到Zune的第一个版本是2006年发布的,而WPF与.NET 3.0却是 2006 年11月发布的。
那么问题来了,如果它不是WPF做的,那它是用什么技术做到的呢?为了找到答案,我使用Process Explorer工具来看看Zune是如何启动的,默认情况下,.NET应用程序都是被用黄色高亮显示的。
很好,这说明Zune肯定是.net 应用程序了,然后我们可以看到Zune需要如下库
如你所见,根名空间是 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 |
} |
|
评论暂时关闭