使图像控制根据主题反转其颜色

时间:2011-01-11 11:02:43

标签: silverlight windows-phone-7 windows-phone-8 windows-phone

我正在尝试找出如何让我的Windows Phone应用程序中的Image控件根据用户在“设置”中选择的全局背景设置(“暗”或“亮”)反转其颜色 - >主题 - >背景

3 个答案:

答案 0 :(得分:5)

在框架内没有内置的方法来反转图像颜色。

相反,由于在手机上执行此操作的开销,您应该在设计/构建时创建图像的两个版本,然后通过检测Theme Visibility and Opacity从代码中选择要显示的版本。

答案 1 :(得分:4)

我必须补充一点,我最终所做的是马特所写的延续。

  • 创建两个不同版本的图像(深色和浅色)并将它们放在完全相同的位置
  • 根据主题资源设置其可见性

代码如下所示:

<Image Height="30" HorizontalAlignment="Center" Margin="0,0,0,220" Name="imgDark" Stretch="Fill" Visibility="{StaticResource PhoneLightThemeVisibility}" VerticalAlignment="Center" Width="30" Source="/MyApplication;component/imageDarkTheme.png" />
<Image Height="30" HorizontalAlignment="Center" Margin="0,0,0,220" Name="imgLoading" Stretch="Fill" Visibility="{StaticResource PhoneDarkThemeVisibility}" VerticalAlignment="Center" Width="30" Source="/MyApplication;component/imageLightTheme.png" />

答案 2 :(得分:4)

这个问题现在已经有1.5年了。但是here是做你想做的最简单的方法。给出的例子非常简单,如

<Button>
    <Image Stretch="None" Source="{Binding Converter={StaticResource ThemedImageConverter}, ConverterParameter={StaticResource PhoneBackgroundColor} }"
           DataContext="/WP7SampleProject4;component/Images/{0}/appbar.feature.camera.rest.png" />
</Button>