Windows Phone 8地图在用户控件中无法显示

3
我希望在我的应用程序中实现“附加位置”功能。 我决定创建一个用户控件,并将地图放入其中。然后,在某个按钮点击时,我会在全屏弹出窗口/自定义消息框中显示此控件。
问题是除了地图不显示之外,一切都正常运行。我可以获取我的位置,放置推针,缩放似乎也可以工作(尽管我什么都看不到)。
更奇怪的是,将相同的代码复制并粘贴到手机应用程序页面中,则能够正常工作并显示地图。我不明白这是不是我不知道的限制。
以下是我的代码:
    <UserControl
       .....
        xmlns:maps="clr-namespace:Microsoft.Phone.Controls.Maps;assembly=Microsoft.Phone.Controls.Maps"
        mc:Ignorable="d"
     ....
    >
<Grid x:Name="LayoutRoot" Background="Black">

        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
            <maps:Map Mode="AerialWithLabels"  
                    Grid.Row="0" 
                    Height="300" 
                    HorizontalAlignment="Left" 
                    Name="map1" VerticalAlignment="Top" 
                    Width="460" Margin="-12,0,0,0">
            </maps:Map>
            <Button Content="share location" 
                    Name="btn_SendLocation" 
                    IsEnabled="False" 
                    Grid.Row="1" 
                    Click="Button_Click_1"/>
            <ListBox Grid.Row="2" 
                     Name="lst_NearBy" 
                     DataContext="{Binding Location}" 
                     Tap="lst_NearBy_Tap">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Margin="0,5">
                            <TextBlock Text="{Binding mName}" Style="{StaticResource PhoneTextLargeStyle}"/>
                            <TextBlock Text="{Binding mVicinity}" Margin="10,0,0,0" Foreground="Gray"/>
                        </StackPanel>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>
        </Grid>
    </Grid>

尝试设置UserControl的宽度和高度。 - Rajeev Nair
1个回答

0

你尝试过以编程方式添加地图吗?

private Constructor()
{
    Map my_map = new Map();
    my_map.Name= "map1";
    my_map.mode = "AerialWithLabels";
    my_map.Height = 300;
    my_map.Margin = new Thickness(-12,0,0,0);
    my_map.VerticalAlignment = System.Windows.VerticalAlignment.Top;
    my_map.HorizontalAlignment= System.Windows.HorizontalAlignment.Left;
    ContentPanel.Children.Add(my_map);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接