2013-10-02 78 views
1

如何在Windows 7/Vista中禁用wpf應用程序的航空視覺樣式。優選的方法是按照優先順序。 1)應用程序清單 2)PINVOKE調用在wpf應用程序中禁用航空視覺樣式

+1

[?你嘗試過什麼(http://mattgemmell.com/2008/12/08/你試過什麼/) –

+0

我碰到過SetThemeAppProperties。 msdn.microsoft.com/en-us/library/windows/desktop/bb759825(v=vs.85).aspx – TrustyCoder

回答

1

我的解決方案涉及到爲窗口創建模板。

首先,設置WindowStyle = NoneResizeMode = NoResize與這些兩個屬性你有這樣一個(不透明度設置爲50%),無邊框窗口:

a borderless window

在VS設計器中,右鍵單擊您窗口Edit Template -> Edit a copy...。現在,這是困難的部分。檢查下面的代碼:

<ControlTemplate TargetType="{x:Type Window}"> 
    <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}"> 
     <AdornerDecorator> 
      <ContentPresenter/> 
     </AdornerDecorator> 
     </Border> 
    </ControlTemplate> 

我擺脫了BorderAdornerDecorator的,但它是沒有必要的。
包裝你ContentPresenterGrid 3行3列在1,1位置:

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition/> 
     <RowDefinition/> 
     <RowDefinition/> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition/> 
     <ColumnDefinition/> 
     <ColumnDefinition/> 
    </Grid.ColumnDefinitions> 
    <ContentPresenter Grid.Row="1" Grid.Column="1"/> 
</Grid> 

對於其他地方,只需插入Rectangles爲您的邊界。
不幸的是,我現在沒有我身後的代碼,但是如果你搜索「WPF Resize window」,你會很容易找到。

我知道這是一個 「黑客」,但它的工作原理:)

編輯:Here's a link with the Code Behind