如何更改视图中图像的前景色



>我有一个图像和文本块的水平堆栈面板。我需要完成的是将两者的前景更改为某种颜色。我可以使用前景属性轻松更改文本块,但我不确定如何使用图像执行此操作。该图像只是一个基本的应用程序图标。

<StackPanel Orientation="Horizontal">
    <Image Source="/Assets/Icons/appbar.book.perspective.png" Width="50" Height="50" Margin="-8,0,-6,0"/>
    <TextBlock Text="BOOK" VerticalAlignment="Center" Foreground="Blue"/>
</StackPanel>

BitmapIcon 对于您可以使用的内容很有帮助:

<BitmapIcon Width="20" Height="20" Foreground="Red" UriSource="ms-appx:///Assets/Resources/YourImage.png" />

这就是我的方式:)

不要使用

ImageViewer 和 Textblock,而是使用 GridTextblock将网格的背景作为所需的图像源。在网格内放置一个文本块。并将文本分配给网格内的文本块。你可以完成你的任务。

是否要更改图像背景颜色,然后拍摄具有透明背景的图像并设置代码,如下所示

    <StackPanel Orientation="Horizontal">
        <Grid Background="Blue" Width="50" Height="50" Margin="-8,0,-6,0">
            <Image Source="/Assets/Icons/appbar.book.perspective.png" />
        </Grid>
        <TextBlock Text="BOOK" VerticalAlignment="Center" Foreground="Blue"/>
    </StackPanel>

不能设置图像的前景。图像的颜色嵌入在 png 文件中。

你可以做的是创建一个滤镜并将其放在彩色背景上。假设您有一本书的黑色(前景)和白色(背景)的图像。如果你想让书是蓝色的(前景),你首先创建一个具有白色背景和透明前景的滤镜。然后,您将该过滤器放在蓝色网格上,如下所示:

<StackPanel>
    <Grid Background="Blue" Width="50" Height="50" Margin="-8,0,-6,0">
        <Image Source="/Assets/book.white.filter.png"/>
    </Grid>
</StackPanel>

如果您必须同时支持黑白主题,则需要创建一个具有黑色背景和透明前景的过滤器。然后,您必须根据所选主题设置图像的来源。

创建图像的副本并在Photoshop,GIMP或 Paint.NET 中对其进行编辑可能更简单。 这些应用程序具有用于交换像素颜色的工具。

然后,可以交换映像 URI 以切换映像。 或者,您可以将前景色图像叠加在主图像的顶部,将其"可见性=折叠"。然后根据需要设置可见性=可见。

如果您使用的是标准的黑/白应用程序图标,则它们的版本是黑底白字和白底黑字。

相关内容

  • 没有找到相关文章

最新更新