【问题标题】:xaml wpf - Gradient Brush resource doesn't work correctlyxaml wpf - 渐变画笔资源无法正常工作
【发布时间】:2022-01-19 15:38:58
【问题描述】:

我已经迫不及待地想找到为什么会发生这种情况的答案......这是我的代码:

资源字典

<Color x:Key="ControlStrokeColorDefault">#0F000000</Color>
<Color x:Key="ControlStrokeColorSecondary">#29000000</Color>
    
<LinearGradientBrush x:Key="ControlElevationBorderBrush" MappingMode="Absolute" StartPoint="0,0" EndPoint="0,3">
        <LinearGradientBrush.RelativeTransform>
            <ScaleTransform CenterY="0.5" ScaleY="-1" />
        </LinearGradientBrush.RelativeTransform>
        <LinearGradientBrush.GradientStops>
            <GradientStop Offset="0.33" Color="{DynamicResource ControlStrokeColorSecondary}" />
            <GradientStop Offset="1.0" Color="{DynamicResource ControlStrokeColorDefault}" />
        </LinearGradientBrush.GradientStops>
</LinearGradientBrush>

面板

<Grid Background="#29000000">
        <WrapPanel Background="#F7F7F7"  VerticalAlignment="Center" HorizontalAlignment="Center">
            <Border Margin="20" Width="100" Height="60" BorderThickness="2" BorderBrush="{DynamicResource ControlElevationBorderBrush}">
                <TextBlock>Ok</TextBlock>
            </Border>
            <Border Margin="20" Width="100" Height="100" BorderThickness="2" BorderBrush="{DynamicResource ControlElevationBorderBrush}">
                <TextBlock>???</TextBlock>
            </Border>
        </WrapPanel>
</Grid>

作为Result,我知道梯度仅在第一个元素上计算...这是 wpf 错误还是我遗漏了什么?

【问题讨论】:

    标签: wpf xaml colors


    【解决方案1】:

    这是因为 ScaleTransform 中的 ScaleY="-1"
    Scale 在不同的高度创建不同的尺寸

    【讨论】:

    • 我知道这是因为 ScaleY="-1" 我的问题是为什么它不计算其他高度
    最近更新 更多