当设备主题设置为深色时,ListPicker 控件具有以下内容:
- 普通模式 - 背景是透明的。
- 扩展模式 - 背景为白色。
当设备主题设置为浅色时,ListPicker 控件具有以下内容:
- 普通模式 - 背景是透明的。
- 扩展模式 - 背景是透明的。
我在列表选择器的项目集合中使用图像+文本。如果主题设置为亮,它工作正常。但是,当主题设置为暗时,图像在正常模式下显示,但在展开模式下不可见。对此有任何解决方法的想法吗?
请参阅下面的图片
当设备主题设置为深色时,ListPicker 控件具有以下内容:
当设备主题设置为浅色时,ListPicker 控件具有以下内容:
我在列表选择器的项目集合中使用图像+文本。如果主题设置为亮,它工作正常。但是,当主题设置为暗时,图像在正常模式下显示,但在展开模式下不可见。对此有任何解决方法的想法吗?
请参阅下面的图片
我有两个建议很快,不需要对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 高亮状态的背景颜色,使其在使用Light 主题时为白色(默认),在使用Dark 主题时为黑色(与默认不同)。我还更改了前景色。
<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>
只要控件 a) 仍然可用并且 b) 适用于深色和浅色主题,像这样更改控件的主题不应导致提交问题。