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