xaml wpf - 渐变画笔资源无法正常工作
Posted
技术标签:
【中文标题】xaml wpf - 渐变画笔资源无法正常工作【英文标题】:xaml wpf - Gradient Brush resource doesn't work correctly 【发布时间】: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 错误还是我遗漏了什么?
【问题讨论】:
【参考方案1】:这是因为 ScaleTransform 中的 ScaleY="-1" Scale 在不同的高度创建不同的尺寸
【讨论】:
我知道这是因为 ScaleY="-1" 我的问题是为什么它不计算其他高度以上是关于xaml wpf - 渐变画笔资源无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
[UWP]使用CompositionLinearGradientBrush实现渐变画笔并制作动画