2011-09-11 5 views
3

LinearGradientBrush를 사용하여 내 WPF 창의 배경을 페인트하려고하는데 내 코드가 작동하지 않습니다. 여기 Unforunatelly 내 방 창문은 여전히 ​​흰색입니다 코드LinearGradientBrush 및 배경 사용 방법

LinearGradientBrush gradientBrush = new LinearGradientBrush(Color.FromArgb(0, 209, 227, 250), Color.FromArgb(0, 170, 199, 238), new Point(0.5, 0), new Point(0.5, 1)); 
Background = gradientBrush; 

입니다. 뒤에있는 코드를 사용하여 창의 배경색을 변경할 수 있습니까?

+2

두 색상이 모두 투명하므로 AllowsTransparency가 true로 설정되어 있지 않으면 'Background'가 검은 색으로 나타납니다. 알파 채널에 대해 0 대신 255를 사용한다는 의미입니다. 윈도우 생성자에서'Background'를 설정하려고해도 여전히 볼 수 없다면'Window' (아마도'Panel')의 다른 컨트롤이 다른'Background' 세트를 가지고 있기 때문입니다. 그 안에 컨트롤이없는'Window'에서 설정하려고하십시오. –

+0

@Meleak : 알파를 잘 잡아라, 왜 대답으로 게시하지 않겠습니까? –

+0

@ H.B. 좋은 이유가 없다. OP가 그의 'Window'가 여전히 'White'라고 말한 이후로 코멘트를 쓰기 시작했다. 아마도 대신 대답을 게시해야합니다. –

답변

0

Window.Background를 다른 브러시로 설정하면 효과가 있습니다.

Background 속성이 {Binding} 지시어를 통해 속성에 데이터 바인딩되어 있지 않은지 확인하십시오.

또한,보다 간단한 브러시로 설정해보십시오 - 예를

Background = new SolidColorBrush(Colors.Black);

+0

하지만 그라디언트 효과가 필요합니다. SolidColorBrush를 사용하면 단 하나의 색상이됩니다 – wpflerner

+0

SolidColorBrush를 시도해보십시오 - 작동합니까? –

8

또한 알파 설정을 설정하는 위해. 색상을 원하기 때문에 대신이 값을 사용하십시오 :

LinearGradientBrush gradientBrush = new LinearGradientBrush(Color.FromRgb(209, 227, 250), Color.FromRgb(170, 199, 238), new Point(0.5, 0), new Point(0.5, 1)); 
Background = gradientBrush;