2016-05-19 3 views
1

Я хочу, чтобы скрыть кнопки + - масштабирования в xamarin.forms, но сохранить мандатной Zoomingxamarin.forms карты скрыть кнопки масштабирования (+ -)

Свойство HasZoomEnabled удаляет кнопки, но и отключить возможность масштабирования

есть ли решение без рендеринга?

если не я буду рад получить решение с предоставлением в андроиде

+0

Было бы неплохо, если бы кто-то ответил на это в случае с формой xamarin. –

ответ

4

Создайте свой собственный контроль с помощью пользовательского средства визуализации

Так что в вашем PCl проекта добавить

public class CustomMap : Map 
    { 
     public CustomMap(MapSpan region) : base(region) 
     { 
     } 
    } 

В вашем андроиде проект добавить

[assembly: ExportRenderer(typeof(CustomMap), typeof(CustomMapRenderer))] 

namespace MobApp.Droid.Renderers 
{ 
    public class CustomMapRenderer : MapRenderer 
    { 
     protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e) 
     { 
      base.OnElementPropertyChanged(sender, e);     

      var map = ((MapView)Control).Map; 
      map.UiSettings.ZoomControlsEnabled = false; 
      map.UiSettings.MyLocationButtonEnabled = false; 
      map.UiSettings.RotateGesturesEnabled = false; 
     } 
    } 
} 

и использовать его следующим образом:

var map = new CustomMap(
       MapSpan.FromCenterAndRadius(
        new Position(37.990599, 23.766820), Distance.FromKilometers(1))) 

      { 
       IsShowingUser = true, 
       HeightRequest = 100, 
       WidthRequest = 960, 
       VerticalOptions = LayoutOptions.FillAndExpand 
      }; 
+0

Это правильный ответ. благодаря – UniSize

Смежные вопросы