0

我正尝试用外部反射的渐变创建矩形。我想要类似于this(但对于矩形/网格)。我无法使用LinearGradientBrush实现它。以下是我的尝试。但那不是我想要的。如何使用WP8.1(WinRT)中向外反射的渐变创建矩形?

<Border Grid.Row="1" Grid.ColumnSpan="2"> 
    <Border.Background> 
    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
     <GradientStop Color="Black" Offset="0" /> 
     <GradientStop Color="White" Offset="1" /> 
    </LinearGradientBrush> 
    </Border.Background> 

谢谢。

+1

简而言之,你不能用渐变来做到这一点。出于性能原因,像素着色器对RT的支持也很小。您最好的选择是使用.png图像或使用多个对象,例如具有不同不透明度的“矩形”,并设置边距来模拟所有四面的DropShadow外观,从而重新创建它的幻觉。 –

回答

1

这是可行的,但棘手。您需要在Blend中执行此操作,因为有一个渐变工具,可以让您轻松旋转渐变并调整渐变停止。你需要一个具有两个相同大小的子网格的父网格。一个孩子需要的梯度是水平的,而另一个垂直的。您将不得不调整两个网格上的不透明度,以便渐变显示为一个。我几分钟之内把这个XAML放在一起,所以它不是完美的,但它可能会帮助你...

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
    <Grid Height="200"> 
     <Grid.Background> 
      <LinearGradientBrush EndPoint="0.51,1.024" 
           StartPoint="0.507,0.052"> 
       <GradientStop Color="White" 
           Offset="1" /> 
       <GradientStop Color="#FFF7F7F7" 
           Offset="0.098" /> 
       <GradientStop Color="Black" 
           Offset="0.5" /> 
       <GradientStop Color="#FFC3C3C3" 
           Offset="0.211" /> 
       <GradientStop Color="White" 
           Offset="0.829" /> 
      </LinearGradientBrush> 
     </Grid.Background> 
    </Grid> 
    <Grid Height="200" 
      Margin="0,220"> 
     <Grid.Background> 
      <LinearGradientBrush EndPoint="1.001,0.588" 
           StartPoint="-0.001,0.596"> 
       <GradientStop Color="White" 
           Offset="1" /> 
       <GradientStop Color="#FFF7F7F7" /> 
       <GradientStop Color="#7F000000" 
           Offset="0.498" /> 
      </LinearGradientBrush> 
     </Grid.Background> 
    </Grid> 
</Grid> 
+0

谢谢:)它帮助我,即使我无法完成我想要的东西 – meetme