代码之家  ›  专栏  ›  技术社区  ›  Leandro Alsina

UWP-LinearGradientBrush在前景上转换透明UIelements

  •  0
  • Leandro Alsina  · 技术社区  · 8 年前

    我有以下XAML:

    <StackPanel Orientation="Vertical">
        <Canvas Width="100" Height="100">
                        <Border Width="100" Height="100">
                            <Border.Background>
                                <LinearGradientBrush MappingMode="Absolute" StartPoint="-10,10" EndPoint="10,0" SpreadMethod="Repeat">
                                    <GradientStop Color="Blue" Offset="4"/>
                                    <GradientStop Color="Red"/>
                                </LinearGradientBrush>
                            </Border.Background>
    
                        </Border>
                        <Polyline Points="0,0 10,10 50,10 90,60" Stroke="Black" StrokeThickness="4"/>
                    </Canvas>
                    <Canvas Width="100" Height="100">
                        <Border Width="100" Height="100">
                            <Border.Background>
                                <LinearGradientBrush MappingMode="Absolute" StartPoint="-10,10" EndPoint="10,0" 
                                                     SpreadMethod="Pad">
                                    <GradientStop Color="Blue" Offset="4"/>
                                    <GradientStop Color="Red"/>
                                </LinearGradientBrush>
                            </Border.Background>
    
                        </Border>
                        <Polyline Points="0,0 10,10 50,10 90,60" Stroke="Black" StrokeThickness="4"/>
                    </Canvas>
          </StackPanel>
    

    看起来像是:

    object on foreground turns transparent

    当我将SpreadMethod=“Repeat”放在LinearGradientBrush上时,它会使笔刷上的所有uielement都变成半透明。这是虫子吗?,我怎样才能解决这个问题?

    (更奇怪的是,如果我给折线填充颜色,它的笔划会变黑)

    项目的目标版本和最低版本都是Windows 10秋季创建者更新版(10.0;内部版本16299)。IDE是VS2017。

    0 回复  |  直到 8 年前