2010年8月10日 星期二

WPF 學習:透明應用程式

有些程式有獨特的風格,例如透明應用程式就是一例。那要如何寫出這類風格的程式呢?

Xaml

<Window x:Class="WpfApplication3.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525" AllowsTransparency="True" WindowStyle="None"
        Background="Transparent" MouseLeftButtonDown="Window_MouseLeftButtonDown">
    <Grid>
    <Ellipse Opacity="0.5" Fill="Green">
      <Ellipse.BitmapEffect>
        <DropShadowBitmapEffect />
      </Ellipse.BitmapEffect>
    </Ellipse>
  </Grid>
</Window>

重點
  1. Window 的 AllowsTransparency 必須設為 True,否則無法呈現透明。
  2. Window 的 WindowStyle 必須設為 None。否則會出現例外。
  3. Window 的 Background 必須設為 Transparent,以顯示透明效果。
經過這三個設定後,程式一跑,就看不到任何的程式內容了。所以我們必須加上內容。如上面範例所示,我增加了一個 半透明的Ellipse,並且以 DropShadowBitmapEffect 產生些微的陰影效果。 再來,為了讓應用程式的 Window 可以移動,我加了MouseLeftButtonDown 的事件處理器。
private void Window_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
  this.DragMove();
}
這樣,我們就可以拖動視窗了。範例執行畫面如下。

image

沒有留言:

Share with Facebook