我有一个具有以下外观的窗口:
然而,我想要的是Button
主Window
中的Grid
控件(中间带有文字的灰色控件)的不透明度为1,完全不透明。当我继承这个项目时,不透明度在开头Window
标记内的顶层设置为0.75。现在,据我所知,这将自动强制执行所有孩子,并说孩子不能覆盖。
如何才能完成透明背景但不透明的按钮?到目前为止我找到的唯一方法(作为WPF中的相对新手)是有两个单独的Windows,一个是透明背景,另一个没有背景但包含不透明控件。这非常hacky,如果可以,我想避免它。
我可以根据要求提供代码,但它实际上就像带有windowstyle = none的Window
和含有Grid
的不透明度.75一样简单,其中包含一些非常基本的Button
等控件。
有没有人之前构建过这样的Window
,或者对生成一个有什么洞察力?感谢。
答案 0 :(得分:90)
不是设置窗口的不透明度,而是设置背景的不透明度:
<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>
答案 1 :(得分:1)
如果您创建这样的样式:
<Window.Resources>
<Style TargetType="Button" x:Key="WindowButtons">
<Setter Property="Opacity" Value="1"/>
</Style>
</Window.Resources>
然后你可以在XAML中为你的按钮引用那些:
<Button Style="{StaticResource WindowButtons}">Tony</Button>
它不应该继承它的父级的不透明性。
答案 2 :(得分:0)
通过将设计师的不透明度从100%设置为60%(根据需要),也可以实现上述效果。