0

Windows Phone アプリ全体で原色を使用していますが、XAML で Pushpin.Background にバインドできないようです。代わりに、UserControl の C# コード ビハインドで Pushpin を作成する必要があります。

奇妙なことに、別の完全にカスタムの Pushpin ControlTemplate を定義して、原色にバインドできるようにしています。

PrimaryColor は System.Windows.Media.Color 型です

問題は何ですか?

以下のコードでは、UserLocationPushpinControlTemplate で Ellipse.Fill を PrimaryColor にバインドできますが、UserWaypointPushpinControlTemplate で m:Pushpin.Background をバインドできません。

<UserControl x:Class="MyMap"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:m="clr-namespace:Microsoft.Phone.Controls.Maps;assembly=Microsoft.Phone.Controls.Maps"
    mc:Ignorable="d"
    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}"
    d:DesignHeight="480" d:DesignWidth="480"
    DataContext="{Binding Main, Source={StaticResource Locator}}">

    <UserControl.Resources>
        <ResourceDictionary>

            <ControlTemplate x:Key="UserLocationPushpinControlTemplate" TargetType="m:Pushpin">
                <Grid x:Name="ContentGrid" Width="34" Height="34">
                    <StackPanel Orientation="Vertical">
                        <Grid MinHeight="30" MinWidth="30">
                            <Ellipse Margin="1"
                                HorizontalAlignment="Center"
                                VerticalAlignment="Center"
                                Width="30"
                                Height="30"
                                Stroke="White"
                                StrokeThickness="3">
                                <Ellipse.Fill>
                                    <SolidColorBrush Color="{Binding PrimaryColor, Mode=OneWay}" />
                                </Ellipse.Fill>
                            </Ellipse>
                        </Grid>
                    </StackPanel>
                </Grid>
            </ControlTemplate>

            <ControlTemplate x:Key="UserWaypointPushpinControlTemplate" TargetType="m:Pushpin">
                <m:Pushpin Foreground="White">
                    <m:Pushpin.Background>
                        <SolidColorBrush Color="{Binding PrimaryColor, Mode=OneWay}" />
                    </m:Pushpin.Background>
                </m:Pushpin>
            </ControlTemplate>

        </ResourceDictionary>
    </UserControl.Resources>
4

1 に答える 1