Сделать контроль изображения, переверните его цвета в зависимости от темы
-
09-10-2019 - |
Вопрос
Я пытаюсь выработать, как иметь Image
Контроль в моем приложении Windows Phone переверните его цвета на основе глобальной настройки фона (либо «темный», либо «свет»), выбранный пользователем в настройках -> Тема-> Фон.
Решение
Нет встроенного способа инвертирования цветов изображения в рамках.
Вместо этого из-за накладных расходов сделать это на телефоне, вы должны создать обе версии изображения при разработке / строении времени, а затем выбирать, какую версию отображать из вашего кода, обнаружение Тема видимость и непрозрачность.
Другие советы
Я должен добавить, что то, что я сделал в конце концов, было продолжением того, что написал Мэтт.
- Создайте два разных изображения, которые имеют разные версии изображения (темные и светлые) и поместите их в то же самое положение
- Установите их видимость на основе тематического ресурса
Код выглядит так:
<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" />
Этот вопрос сейчас 1,5 года. Но здесь самый простой способ сделать то, что вы хотите. Пример, приведенный там очень просто
<Button>
<Image Stretch="None" Source="{Binding Converter={StaticResource ThemedImageConverter}, ConverterParameter={StaticResource PhoneBackgroundColor} }"
DataContext="/WP7SampleProject4;component/Images/{0}/appbar.feature.camera.rest.png" />
</Button>