2011-09-11 29 views
3

我想繪製使用LinearGradientBrush我的WPF窗口的背景,但是我的代碼不起作用。 下面是代碼如何使用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; 

Unforunatelly我的窗口仍然是白色的。是否可以使用後面的代碼更改窗口的背景顏色?

+2

你的兩種顏色都是透明的,所以'背景'會顯示爲黑色,除非你把AllowsTransparency設置爲true。我想你的意思是在Alpha通道中使用255而不是0。如果您嘗試在Windows構造函數中設置「Background」,但仍然無法看到它,那是因爲您的'Window'(可能是Panel)中的其他控件具有另一個「背景」集。嘗試在沒有任何控制的'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

你設置Alpha設置也。使用這個來代替顏色:

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;