3

有谁知道WPF中SVG的“gradientUnits = userSpaceOnUse”是否有一个LinearGradientBrush的等量属性?我似乎找不到这个。

如果没有,有人知道如何在(C# 或 VB.NET)中计算它吗?例如,如果我在 100x100 的 Rectangle 上的 StartPoint 为 0,0,EndPoint 为 1,1,则角度为 45 度。但是,当我更改 Rectangle 的宽度或高度时,例如 Width=150,轴不再是 45 度。我如何计算以使非正方形的矩形中的角度保持在 45 度,以便它从左下角到右上角的中间梯度停止。

4

2 回答 2

3

现在在新的 Silverlight 4 中,这就像一个魅力 - 在 RotateTransform 中将角度设置为 45 度是为了边界框而不是形状。像这样:

  <Rectangle Width="70" Height="50">
    <Rectangle.Fill>
        <LinearGradientBrush  EndPoint="0.5,1" StartPoint="0.5,0">
            <GradientStop Color="#FFF70202" Offset="0"/>
            <GradientStop Color="#FFF7F206" Offset="1"/>
            <GradientStop Color="Black" Offset="0.49"/>
            <GradientStop Color="Black" Offset="0.51"/>
            <GradientStop Color="White" Offset="0.5"/>
            <LinearGradientBrush.RelativeTransform>
            <RotateTransform CenterX="0.5" CenterY="0.5" Angle="45"></RotateTransform>
            </LinearGradientBrush.RelativeTransform>
        </LinearGradientBrush>
    </Rectangle.Fill>
于 2010-02-20T03:13:48.163 回答
2

设置画笔 MappingMode = BrushMappingMode.Absolute

于 2009-09-01T11:10:51.657 回答