如何在 MapControl 中添加按钮 Windows Phone 8.1

How to add Buttons inside of MapControl Windows Phone 8.1

我想在我的 MapControl 中放置两个按钮,一个用于放大,另一个用于缩小,这是我的带有代码的 CS 文件,我在这里所做的我使用 MapControl1.ZoomLevel = 15; ,但我如何将其放入按钮中?

public async void mapas2()
    {
        Geolocator geolocator = new Geolocator();
        Geoposition geoposition = null;
        try
        {
            geoposition = await geolocator.GetGeopositionAsync();
        }
        catch (Exception ex)
        {
            MessageDialog ms = new MessageDialog("Erro GPS, Por favor, acesse as configurações de seu Windows Phone," + Environment.NewLine +
            "na opção LOCALIZAÇÃO e habilite o Serviço de Localização");
            ms.ShowAsync();


        }
        MapControl1.Center = geoposition.Coordinate.Point;
        MapControl1.ZoomLevel = 15;

        MapIcon mapIcon = new MapIcon();

        mapIcon.NormalizedAnchorPoint = new Point(0.25, 0.9);
        mapIcon.Location = geoposition.Coordinate.Point;
        mapIcon.Title = "Você está aqui....";

        MapControl1.MapElements.Add(mapIcon);

    }

您可以将这些按钮与您的地图控件放在一个 Grid 和 XAML 中,这样它们看起来就像在地图上一样。

示例:

<Grid>
    <Maps:MapControl />
    <StackPanel HorizontalAlignment="Center" 
                VerticalAlignment="Bottom"
                Orientation="Horizontal"
                Margin="24">
        <Button Content="+" 
                Margin="12" 
                MinWidth="40" />
        <Button Content="-" 
                Margin="12" 
                MinWidth="40"  />
    </StackPanel>
</Grid>

Łukasz Rejman 的回答还差几行

<StackPanel HorizontalAlignment="Center" VerticalAlignment="Bottom" Orientation="Horizontal" Margin="15">
<Button x:Name="ZooOut" Content="-"  Margin="5"  MinWidth="60" MinHeight="60" Tapped="ZooOut_Tapped"  />
<Button x:Name="ZoomIn" Content="+" Margin="5" MinWidth="60" MinHeight="60" Tapped="ZoomIn_Tapped" />
</StackPanel>

点击按钮事件:

private void ZoomIn_Tapped(object sender, TappedRoutedEventArgs e)
    {
        if (CustomMapControl.ZoomLevel < 20)
        {
            if (CustomMapControl.ZoomLevel > 19)
                CustomMapControl.ZoomLevel = 20;
            else
                CustomMapControl.ZoomLevel++;
        }   
    }

    private void ZooOut_Tapped(object sender, TappedRoutedEventArgs e)
    {
        if (CustomMapControl.ZoomLevel > 1)
        {
            if (CustomMapControl.ZoomLevel < 2)
                CustomMapControl.ZoomLevel = 1;
            else
                CustomMapControl.ZoomLevel--;
        }
    }