首页 > 解决方案 > 程式化时的窗口背景黑色

问题描述

我正在尝试将以下背景画笔应用于NavigationWindow

<NavigationWindow.Background>
    <RadialGradientBrush GradientOrigin="0.496,1.052">
        <RadialGradientBrush.RelativeTransform>
            <TransformGroup>
                <ScaleTransform CenterX="0.5" CenterY="0.5" 
                                ScaleX="1.5" ScaleY="1.5"/>
                <TranslateTransform X="0.02" Y="0.0"/>
            </TransformGroup>
        </RadialGradientBrush.RelativeTransform>
        <GradientStop Offset="1" Color="#00000000"/>
        <GradientStop Offset="0.2" Color="#FFFFFFFF"/>
    </RadialGradientBrush>
</NavigationWindow.Background>

目前除了NavigationWindow元素体中的这个设置器之外什么都没有,我正在尝试在一个新项目中解决它。设计器显示了正确的颜色,但在运行期间它变得比应有的颜色深得多:

这就是它的外观以及设计师如何正确显示它:

在此处输入图像描述

这就是它在运行时的样子:

在此处输入图像描述

我试图将相同的画笔应用于一个Page元素,它工作得很好。

标签: wpfxamlcolorsstyles

解决方案


这是因为您的黑色是 100% 透明的,并且在运行时背景是黑色的。在你方格白色背景显示的设计师。您可以通过两种方式证明这一点。首先将 Visual Studio 设置为暗模式。其次将 NavigationWindow 更改为Background=Transparent. 您将在运行时看到它有黑色背景。另一方面,在页面上设置透明背景会导致白色背景。

尝试使用所有不透明的颜色。像这样的东西:

<NavigationWindow.Background>
    <RadialGradientBrush GradientOrigin="0.496,1.052">
        <RadialGradientBrush.RelativeTransform>
            <TransformGroup>
                <ScaleTransform CenterX="0.5" CenterY="0.5" 
                            ScaleX="1.5" ScaleY="1.5"/>
                <TranslateTransform X="0.02" Y="0.0"/>
            </TransformGroup>
        </RadialGradientBrush.RelativeTransform>
        <GradientStop Offset="1" Color="#FF4B4B4B"/>
        <GradientStop Offset="0.2" Color="#FFFFFFFF"/>
    </RadialGradientBrush>
</NavigationWindow.Background>

推荐阅读