【问题标题】:WP8 ListPicker expanded mode backgroundWP8 ListPicker 展开模式背景
【发布时间】:2013-03-19 05:59:31
【问题描述】:

当设备主题设置为深色时,ListPicker 控件有以下内容:

  • 普通模式 - 背景是透明的。
  • 扩展模式 - 背景为白色。

当设备主题设置为浅色时,ListPicker 控件有以下内容:

  • 普通模式 - 背景是透明的。
  • 扩展模式 - 背景是透明的。

我在列表选择器的项目集合中使用图像+文本。如果主题设置为亮,它工作正常。但是,当主题设置为暗时,图像在正常模式下显示,但在展开模式下不可见。对此有任何解决方法的想法吗?

见下图

【问题讨论】:

  • 您的图像颜色似乎也随着手机主题而变化。在深色主题中,您的图像颜色为黑色,而在浅色主题中图像颜色为白色。这样即使您的图像仍然存在,在黑暗主题图像中也不会显示。您可以检查您的图像吗?手机主题的颜色如何变化?
  • 是的,图像被包裹在一个矩形中,其中 Fill 属性设置为 PhoneContrastBackgroundBrush,OpacityMask 属性设置为图像,以便可以在两个主题中使用相同的图像。
  • 你可能需要自定义ListPicker控件的样式,try this tutorial
  • @NeilTurner 是的,我已经这样做了,但是我发现它唯一可行的方法是从 ListPicker 的突出显示视觉状态中删除几个对象动画。不幸的是,在这种情况下,扩展模式在深色主题中将是透明的,这与 WP8 列表选择器的正常行为不一致
  • 在突出显示的视觉状态下,我将背景更改为 PhoneBackgroundColor - 在这种情况下图像仍然不可见还是不是您想要的外观?

标签: windows-phone-8 windows-phone 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 高亮状态的背景颜色,使其在使用 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) 适用于深色和浅色主题,像这样更改控件的主题不会导致提交问题。

【讨论】:

  • 感谢张贴和带有强调色的好建议,还没有考虑过:)
  • 没问题 - 祝您的应用好运!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多