문제

헤더의 배경을 색칠하는 브러시가 있습니다.브러시 모양이 마음에 들지만 하단 1/3 부분이 투명하게 페이드되도록 하고 싶습니다.이 작업을 수행하는 방법에 대한 아이디어가 있습니까?

<LinearGradientBrush 
  x:Key="HeaderBackgroundBrush" 
  EndPoint=".5,1" 
  StartPoint="1,0">
  <GradientStop Color="#006699" Offset="1"/>
  <GradientStop Color="#80A8CC" Offset="0.5"/>
</LinearGradientBrush>
도움이 되었습니까?

해결책

브러시 수준에서만 작업하여 이 작업을 수행할 수 있을지 확신할 수 없지만 OpacityMask 귀하의 통제에 따라:

<LinearGradientBrush
    x:Key="HeaderBackgroundOpacityMask"
    StartPoint="0,0"
    EndPoint="0,1">
  <GradientStop Color="#FFFFFFFF" Offset="0"/>
  <GradientStop Color="#FFFFFFFF" Offset="0.667"/>
  <GradientStop Color="#00FFFFFF" Offset="1"/>
</LinearGradientBrush>

...
<Border Background="{StaticResource HeaderBackgroundBrush}"
        OpacityMask="{StaticResource HeaderBackgroundOpacityMask}">

다른 팁

이처럼 ARGB (알파 포함)로 색상을 지정하십시오. #aarrggbb.그런 다음 마지막 그라디언트가 0의 알파 값을 멈추십시오 (완전히 투명합니다. 사례 # 0080A8CC).HTH.

C #에서 원하는 경우 다음 코드를 사용하십시오.그러면 완전히 투명한 브러시에 가벼운 분홍색 / 연어를 줄 것입니다.#ff와 # 00을 변경하여 다른 투명도 그라데이션을 얻으십시오.

var startColour = (SolidColorBrush)new BrushConverter().ConvertFrom("#FFff99a8");
var endColour = (SolidColorBrush)new BrushConverter().ConvertFrom("#00ff99a8");
_dirtyColourBackground = new LinearGradientBrush(startColour.Color, endColour.Color,new Point(0,0),new Point(1,0));
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top