迅速で、コントロールに大幅な変更を加える必要のない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)暗いテーマと明るいテーマで機能する限り、送信の問題は発生しません。