gpt4 book ai didi

c# - 在 XAML 中更改具有透明度的 PNG 的显示颜色

转载 作者:行者123 更新时间:2023-11-30 18:47:43 29 4
gpt4 key购买 nike

我有一些具有透明度的 PNG,用于我的 WPF/C# 应用程序中的按钮。现在我有每个 PNG 的两个版本,一个用于普通 View ,一个用于悬停,每个都有不同的颜色。但是,我真的很想只有一个 PNG 并且可能将所有不透明的东西都变成白色(每个图像都是一种颜色,除了形状之外没有其他细节。是否可以使用 SolidColorBrush 或类似工具更改每个颜色,并在我的 XAML 中将 Normal/Hover 版本创建为静态资源?像这样:

<Image Key="BtnMenu" Source="Images/Menu.png" Fill="ButtonNormalBrush" />
<Image Key="BtnMenuHover" Source="Images/Menu.png" Fill="ButtonHoverBrush" />

是的,我完全编造了“填充”的东西......但基本思想是,我有一个 ResourceDictionary,其中包含在整个应用程序中使用的配色方案,这样我就可以在一个地方更改我在应用程序中使用的大约 6 种颜色中的任何一种,并且它会在每次更新时更新控件引用该颜色...但我不能这样做的地方是按钮的那些 PNG。 (理想情况下,将来我会让 ResourceDictionary 成为可以在运行时加载的东西,以使应用程序具有备用“皮肤”......但现在 PNG 阻止我这样做)。

编辑顺便说一句,如果解决方案需要转换器或用代码编写的东西,那完全没问题。

最佳答案

嗯...如果您创建了一个网格,并将图像放在该网格中,您可以将网格的背景设置为您的填充颜色。

编辑:这是一些代码:

<Button>
<Grid Background="SkyBlue">
<Image Source="img.png" Stretch="None" />
</Grid>
</Button>

关于c# - 在 XAML 中更改具有透明度的 PNG 的显示颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8361179/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com