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

时间:2015-03-12 20:40:33

标签: windows-runtime 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);

    }

2 个答案:

答案 0 :(得分:0)

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

示例:

<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>

enter image description here

答案 1 :(得分:0)

再往ŁukaszRejman回答几句话

<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--;
        }
    }