선형 그라데이션 브러시 페이드 WPF
문제
헤더의 배경을 색칠하는 브러시가 있습니다.브러시 모양이 마음에 들지만 하단 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));
. 제휴하지 않습니다 StackOverflow