2014-02-16 64 views
0

我正在嘗試創建一個VisualBrush,其中的陰影圖案會在頂部和底部邊距處褪色。雖然我對孵化本身沒有任何問題:VisualBrush在WPF中具有淡入淡出效果

<VisualBrush x:Key="b1" TileMode="Tile" Viewport="0,0,15,15" ViewportUnits="Absolute" Viewbox="0,0,15,15" ViewboxUnits="Absolute"> 
    <VisualBrush.Visual> 
     <Canvas> 
      <Path Data="M 0 15 L 15 0" Stroke="Gray"></Path> 
      <Path Data="M 0 0 L 15 15" Stroke="Gray"></Path> 
     </Canvas> 
    </VisualBrush.Visual>  
</VisualBrush> 

我真的沒有看到讓它褪色的方法。任何想法如何做到這一點?

試圖根據下圖獲取背景。

enter image description here

回答

0

當我從你的榜樣形象的理解,你需要指定一個普通Background。爲此我設置Grid而不是Canvas併爲他設置顏色Background

對於面板,其將顯示內容需要設置OpasityMask這樣的:

<Window.Resources> 
    <VisualBrush x:Key="b1" TileMode="Tile" Viewport="0,0,15,15" ViewportUnits="Absolute" Viewbox="0,0,15,15" ViewboxUnits="Absolute"> 
     <VisualBrush.Visual> 
      <Grid Background="Black"> 
       <Path Data="M 0 15 L 15 0" Stroke="Gray" /> 
       <Path Data="M 0 0 L 15 15" Stroke="Gray" /> 
      </Grid> 
     </VisualBrush.Visual> 
    </VisualBrush> 
</Window.Resources> 

<Grid Background="{StaticResource b1}"> 
    <Grid.OpacityMask> 
     <LinearGradientBrush StartPoint="0,0" EndPoint="1,0"> 
      <GradientStop Offset="0" Color="Black" /> 
      <GradientStop Offset="1" Color="Transparent" /> 
     </LinearGradientBrush> 
    </Grid.OpacityMask> 

    <Label Content="TEST" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" /> 
</Grid> 

Result

enter image description here