我有一些PNG具有透明度,可用於WPF/C#應用程序中的按鈕。 現在我有兩個版本的每個PNG,一個用於普通視圖,一個用於懸停,每個都有不同的顏色。但是,我真的很想只有一個PNG,並且可能會使所有不透明的白色(每個圖像都是一種顏色,除了形狀以外沒有其他細節)。 然後可以使用SolidColorBrush更改每個顏色,或者?類似的,在我的XAML創建普通/哈弗版本爲靜態資源 事情是這樣的:用XAML中的透明度更改PNG的顯示顏色
<Image Key="BtnMenu" Source="Images/Menu.png" Fill="ButtonNormalBrush" />
<Image Key="BtnMenuHover" Source="Images/Menu.png" Fill="ButtonHoverBrush" />
是啊,我完全是編造的「填充」的事情...... 但基本的想法是,我有一個ResourceDictionary,其中包含在整個應用程序中使用的顏色方案,這使得我可以在一個位置更改我在應用程序中使用的約6種顏色中的任何一種顏色,並更新每個引用該顏色的控件的顏色。但是t他不能做的一個地方就是那些按鈕的PNG。 (理想的是,將來我會讓ResourceDictionary在運行時加載,以使應用程序具有備用「皮膚」..但現在PNG讓我無法做到這一點)。
編輯:順便說一句,如果解決方案需要一個轉換器或用代碼寫的東西,那就完全沒問題。
我很喜歡WPF,但它還是很新的...例子將不勝感激。 –
@AdamHaile:好吧,如果你想轉換像素,你可以使用['WriteableBitmap'](http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.writeablebitmap.aspx),我真的不能給你一個例子,因爲它是一個痛苦的使用,它取決於你的文件的格式,多年以來沒有使用它。 –