WP8 ListPicker расширенный режим фона
Когда тема устройства установлена на темный, элемент управления ListPicker имеет следующее:
- Нормальный режим - фон прозрачный.
- Расширенный режим - фон белый.
Когда тема устройства установлена на свет, элемент управления ListPicker имеет следующее:
- Нормальный режим - фон прозрачный.
- Расширенный режим - фон прозрачный.
Я использую изображение + текст в коллекции элементов списка выбора. Работает нормально, если тема установлена на свет. Однако, когда тема установлена на темное изображение отображается в обычном режиме, но не отображается в расширенном режиме. Есть идеи обойти это?
Смотрите изображения ниже
1 ответ
У меня есть два предложения, которые являются быстрыми и не требуют серьезных изменений ListPicker
контроль...
1) Используйте цвет акцента телефона в качестве OpacityMask
с изображением...
<toolkit:ListPicker.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Rectangle Fill="{StaticResource PhoneAccentBrush}" Height="40" Width="40">
<Rectangle.OpacityMask>
<ImageBrush ImageSource="{Binding Icon}" />
</Rectangle.OpacityMask>
</Rectangle>
<TextBlock Text="{Binding Name}" />
</StackPanel>
</DataTemplate>
</toolkit:ListPicker.ItemTemplate>
Если значок использует акцентный цвет, он будет виден на черном или белом фоне.
2) Измените цвет фона выделенного состояния ListPicker, чтобы он был белым при использовании темы "Свет" (по умолчанию) и черным при использовании темы "Темный" (отличается от значения по умолчанию). Я также изменил цвет переднего плана.
<ObjectAnimationUsingKeyFrames
Storyboard.TargetName="UserControl"
Storyboard.TargetProperty="Foreground"
Duration="0">
<DiscreteObjectKeyFrame
Value="{StaticResource PhoneForegroundBrush}"
KeyTime="0"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames
Storyboard.TargetName="Border"
Storyboard.TargetProperty="Background"
Duration="0">
<DiscreteObjectKeyFrame
Value="{StaticResource PhoneBackgroundColor}"
KeyTime="0"/>
</ObjectAnimationUsingKeyFrames>
Подобное изменение темы элемента управления не должно вызывать проблем с отправкой, если элемент управления а) все еще может использоваться и б) работает на темных и светлых темах.