Windows Phone 傳感器使用

 <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
            <Grid.RowDefinitions>
                <RowDefinition />
                <RowDefinition Height="auto"/>
            </Grid.RowDefinitions>
            <Ellipse x:Name="ell" Grid.Row="0" Width="100" Height="100" HorizontalAlignment="Center" VerticalAlignment="Center" Fill="Orange"/>
            <TextBlock Name="data" Grid.Row="1" FontSize="28"/>
         </Grid>
 protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);
            if (Accelerometer.IsSupported == false)
            {
                data.Text = "不支持傳感器";
                return;
            }
            if (acceler == null)
            {
                acceler = new Accelerometer();
                acceler.TimeBetweenUpdates = TimeSpan.FromMilliseconds(500);
                acceler.CurrentValueChanged += new EventHandler<SensorReadingEventArgs<AccelerometerReading>>(change);
            }
            acceler.Start();
            if (projiection == null)
            {
                projiection = new PlaneProjection();
                this.ell.Projection = projiection;
            }
        }

        void change(object sender, SensorReadingEventArgs<AccelerometerReading> e)
        {
            Dispatcher.BeginInvoke( () => {
            Vector3 v3 = e.SensorReading.Acceleration;
            projiection.LocalOffsetX = Convert.ToDouble(250 * v3.X);
            projiection.LocalOffsetY = Convert.ToDouble(250 * v3.Y);
            projiection.LocalOffsetZ = Convert.ToDouble(300 * v3.Z);
            data.Text = string.Format("X={0}, Y={0}, Z={2}", v3.X.ToString(), v3.Y.ToString(), v3.Z.ToString());
            });
        }
    
    }


發佈了62 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章