2014-02-16 2 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

Смежные вопросы