【问题标题】:WPF Window with transparent background containing opaque controls [duplicate]具有透明背景且包含不透明控件的 WPF 窗口 [重复]
【发布时间】:2014-02-23 00:33:15
【问题描述】:

我有一个外观如下的窗口:

然而,我想要的是,如果Window 的主Grid 中的Button 控件(中间带有文本的灰色控件)的不透明度为1,则完全不透明。当我继承这个项目时,不透明度在顶层设置为 0.75,在打开的Window 标记内。现在据我了解,这将自动对所有孩子强制执行,并且说孩子不能覆盖。

那么我怎样才能完成透明背景但不透明的按钮?到目前为止,我发现的唯一方法(作为 WPF 中的相对新手)是拥有两个独立的 Windows,一个是透明背景,另一个没有背景但包含不透明控件。不过,这非常 hacky,如果可以的话,我想避免它。

如果需要,我可以提供代码,但它实际上就像 Window 一样简单,其中 windowstyle=none 和 opacity .75 包含 Grid,其中包含一些非常基本的 Button 等控件。

之前有没有人构建过这样的Window,或者对生成一个有洞察力?谢谢。

【问题讨论】:

    标签: c# .net wpf user-interface transparency


    【解决方案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】:

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

      <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>
      

      【讨论】:

      • 非常感谢。我已经尝试了很多东西,我不敢相信它是如此简单。
      • @svinja,我们如何才能为在 win 表单中托管的 WPF 用户控件实现相同的效果。
      • @RSB 将用户控件的背景画笔设置为透明或空
      • 我认为这是一个重要的细微差别。我也设置了BackgroundOpacity 的控件属性。以这种方式使用该属性可以更好地控制嵌入式控件的外观和感觉。
      【解决方案3】:

      也可以通过将设计师的不透明度设置为 100% 到 60%(根据需要)来实现上述效果。

      【讨论】:

        猜你喜欢
        • 2012-05-03
        • 1970-01-01
        • 1970-01-01
        • 2015-11-12
        • 2018-07-06
        • 1970-01-01
        • 2012-05-26
        • 2011-10-13
        • 1970-01-01
        相关资源
        最近更新 更多