• 【高德地图API】Pivot控件中加载地图并禁止Pivot手势


    如题,解决方案,参考【Windows phone应用开发[20]-禁止Pivot手势】http://www.cnblogs.com/chenkai/p/3408658.html

    xaml代码清单

     
    <phone:PhoneApplicationPage
        x:Class="PhoneApp2.Samples.MapPage"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
        xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        FontFamily="{StaticResource PhoneFontFamilyNormal}"
        FontSize="{StaticResource PhoneFontSizeNormal}"
        Foreground="{StaticResource PhoneForegroundBrush}"
        SupportedOrientations="Portrait" Orientation="Portrait"
        mc:Ignorable="d"
        shell:SystemTray.IsVisible="True">
     
        <!--LayoutRoot 是包含所有页面内容的根网格-->
        <Grid x:Name="LayoutRoot" Background="Transparent">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
     
            <!--TitlePanel 包含应用程序的名称和页标题-->
            <StackPanel Grid.Row="0" Margin="12,17,0,28">
                <TextBlock Text="我的应用程序" Style="{StaticResource PhoneTextNormalStyle}"/>
                <TextBlock Text="页面名称" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
            </StackPanel>
     
            <!--ContentPanel - 在此处放置其他内容-->
            <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
                <phone:Pivot x:Name="pivot1" Grid.Row="1" Title="pivot" >
                    <phone:PivotItem x:Name="pivot" CacheMode="{x:Null}" Header="item1" >
                        <Grid x:Name="mapLayer">
                        </Grid>
                    </phone:PivotItem>
                    <phone:PivotItem CacheMode="{x:Null}" Header="item2">
                        <Grid x:Name="mapLayer2">
                            <Button  Content="button" Margin="116,232,108,132"/>
                            <TextBlock Text="item2" Margin="150,174,124,244"/>
                        </Grid>
                    </phone:PivotItem>
                    <phone:PivotItem CacheMode="{x:Null}" Header="item2">
                        <Grid x:Name="mapLayer3">
                            <Button  Content="button" Margin="116,232,152,132"/>
                        <TextBlock Text="item2" Margin="150,174,124,244"/>
                         
                        </Grid>
                    </phone:PivotItem>
                </phone:Pivot>
            </Grid>
        </Grid>
     
    </phone:PhoneApplicationPage>
     

    cs代码清单


    AMap amap;
    AMapMarker marker;

    //private Point currentPoint;
    //private Point oldPoint;

    public MapPage()
    {
    InitializeComponent();

    this.mapLayer.Children.Add(amap = new AMap());
    Touch.FrameReported += (s, e) =>
    {
    if (e.GetPrimaryTouchPoint(amap).Action == TouchAction.Up)
    {
    //this.pivot1.IsLocked = false;
    }
    };
    //amap.ManipulationStarted += (s, e) =>
    // {
    // this.pivot1.IsLocked = true;
    // };



    //amap.Loaded += amap_Loaded;
    this.Loaded += MapPage_Loaded;
    }

    void MapPage_Loaded(object sender, RoutedEventArgs e)
    {
    Events();
    }

    private void Events()
    {
    this.pivot.UseOptimizedManipulationRouting = false;
    this.pivot.AddHandler(PivotItem.ManipulationStartedEvent, new EventHandler<ManipulationStartedEventArgs>(pivot_ManipulationStarted), true);
    this.pivot.AddHandler(PivotItem.ManipulationDeltaEvent, new EventHandler<ManipulationDeltaEventArgs>(pivot_ManipulationCompleted), true);
    }



    Point startPoint;
    private void pivot_ManipulationStarted(object sender, ManipulationStartedEventArgs e)
    {
    startPoint = e.ManipulationOrigin;
    }


    private void pivot_ManipulationCompleted(object sender, ManipulationDeltaEventArgs e)
    {
    Point endPoint = e.ManipulationOrigin;
    if (endPoint.X - startPoint.X >= 0)
    {
    #region Control Right Side
    e.Complete();
    e.Handled = true;
    #endregion
    }
    if (endPoint.X - startPoint.X < 0)
    {
    #region Control Left Side
    e.Complete();
    e.Handled = true;
    #endregion
    }
    }
    }


     
     
  • 相关阅读:
    SKAHThe Secret Of Excellence
    【SQLite备忘】sqlite设置自增字段
    实现自定义字段的几种方式(转载)
    7个促进Vue3开发更友好的插件(转载)
    《无垠的太空(9).利维坦陨落》第二十六章:吉姆
    《无垠的太空(9).利维坦陨落》翻译过半,求P电子书封面
    《无垠的太空(9).利维坦陨落》第二十五章:田中
    一读《浮生六记》
    《无垠的太空(9).利维坦陨落》第二十七章:艾薇
    《无垠的太空(9).利维坦陨落》第二十四章:灯塔和守护者
  • 原文地址:https://www.cnblogs.com/shiyix/p/3459064.html
Copyright © 2020-2023  润新知