如何在视野中改变图像的前景色

时间:2014-01-08 05:18:49

标签: image xaml windows-phone-7 windows-phone-8 styles

我有一个Image和TextBlock的水平StackPanel。我需要做的是将两者的前景改为某种颜色。我可以使用Foreground属性轻松更改TextBlock,但我不确定如何使用Image执行此操作。该图片只是一个基本的应用图标。

<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>

5 个答案:

答案 0 :(得分:17)

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

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

这是我的方式...... :)。

答案 1 :(得分:3)

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

答案 2 :(得分:1)

是否要更改图像背景颜色,然后使用透明背景拍摄图像并将代码设置如下

    <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>
抱歉,如果我错了。谢谢你

答案 3 :(得分:1)

您无法设置图像的前景。图像的颜色嵌入在png文件中。

您可以做的是创建一个过滤器并将其放在彩色背景上。假设你有一本黑色(前景)和白色(背景)的图像。如果您希望书籍为蓝色(前景),则首先要创建一个具有白色背景和透明前景的滤镜。然后你把这个过滤器放在一个蓝色的网格上:

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

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

答案 4 :(得分:0)

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

然后您可以换出图像URI来切换图像。或者,您可以将前景色图像叠加在主图像的上方,将其设置为Visibility = Collapsed。然后根据需要设置Visibility = Visible。

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