1

デバイステーマがdarkに設定されている場合、ListPickerコントロールには次のものがあります。

  • 通常モード-背景は透明です。
  • 拡張モード-背景は白です。

デバイステーマがライトに設定されている場合、ListPickerコントロールには次のものがあります。

  • 通常モード-背景は透明です。
  • 拡張モード-背景は透明です。

リストピッカーのアイテムコレクションで画像とテキストを使用しています。テーマがライトに設定されている場合は正常に機能します。ただし、テーマが暗く設定されている場合、画像は通常モードでは表示されますが、拡張モードでは表示されません。このための回避策のアイデアはありますか?

下の画像を参照してください

ライトテーマ-通常モード ライトテーマ-拡張モード ダークテーマ-通常モード ダークテーマ-拡張モード

4

1 に答える 1

2

迅速で、コントロールに大幅な変更を加える必要のない2つの提案があります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>

コントロールのテーマをこのように変更しても、コントロールがa)引き続き使用可能であり、b)暗いテーマと明るいテーマで機能する限り、送信の問題は発生しません。

于 2013-03-20T16:55:21.723 に答える