2014-01-30 117 views
36

我有下面外觀的窗口:WPF窗口用透明的含背景不透明控制

enter image description here

我想,但是,是如果Button對照(灰色那些在中間文本)在Window的主Grid的不透明度爲1,完全不透明。當我繼承這個項目時,不透明度被設置爲0.75,位於頂部Window標籤內。現在據我所知,這將自動執行所有的孩子,並說,孩子不能重寫。

那麼我怎麼才能完成透明背景,但不透明的按鈕?到目前爲止我發現的唯一方法(作爲WPF中的相對新手)是有兩個獨立的Windows,一個是透明背景,另一個沒有背景,但包含不透明的控件。儘管這很糟糕,但我希望儘可能避免它。

如果要求我能提供的代碼,但它確實是與windowstyle = none和不透明0.75含Grid,其中包含了一些非常基本的Button等控件Window一樣簡單。

以前有沒有人建造過這樣的Window或者有其他方法可以深入瞭解生成一個?謝謝。

回答

76

而不是設置窗口的不透明度,設置其背景的不透明度:

<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"> 
    <Window.Background> 
     <SolidColorBrush Opacity="0.5" Color="White"/> 
    </Window.Background> 
    <Grid> 
     <Button Width="200" Height="50">button</Button> 
    </Grid> 
</Window> 
+0

非常感謝你。我嘗試了很多東西,我不敢相信這很簡單。 – kmarks2

+0

@svinja,我們如何才能達到WPF用戶控制相同的效果,這是在勝利形式託管。 – RSB

+0

@RSB將用戶控件的背景刷設置爲「透明」或「空」 – Gusdor

1

如果你創建一個這樣的風格:

<Window.Resources> 
    <Style TargetType="Button" x:Key="WindowButtons"> 
     <Setter Property="Opacity" Value="1"/>   
    </Style> 
</Window.Resources> 

那麼你可以參考那些在XAML爲您的按鈕是這樣的:

<Button Style="{StaticResource WindowButtons}">Tony</Button> 

它應該不會再沿用這是從不透明的家長。

0

上述的效果,也可以由設計者設置不透明度從100%到60%(根據需要)來實現的。