我有两个页面:Start.xaml.cs和Settings.xaml.cs。 在Setting.xaml.cs中,我只获得一次加速度计的数据并修复初始的posiotion。在Start.xaml.cs中,我连续读取加速度计的数据。我想从Settings.xaml.cs获取加速度计数据变量,并将它们带到Start.xaml.cs进行比较。你能帮我做一下,或者给我一些信息来源,我怎么能这样做?
Start.xaml.cs
的代码Accelerometer acc = new Accelerometer();
public Start()
{
InitializeComponent();
acc.ReadingChanged += new EventHandler<AccelerometerReadingEventArgs>(acc_ReadingChanged);
acc.Start();
}
void acc_ReadingChanged(object sender, AccelerometerReadingEventArgs e)
{
Deployment.Current.Dispatcher.BeginInvoke(() => ThreadSafeAccelerometerChanged(e));
}
void ThreadSafeAccelerometerChanged(AccelerometerReadingEventArgs e)
{
xText.Text = e.X.ToString("0.0000");
yText.Text = e.Y.ToString("0.0000");
zText.Text = e.Z.ToString("0.0000");
}
以下是 Settings.xaml.cs
的代码Accelerometer acc = new Accelerometer();
private void Calib_Click(object sender, RoutedEventArgs e)
{
acc.Start();
acc.ReadingChanged += myAccelerometer_ReadingChanged;
}
void myAccelerometer_ReadingChanged(object sender, AccelerometerReadingEventArgs f)
{
this.Dispatcher.BeginInvoke(delegate()
{
xBlock.Text = "X:"+f.X.ToString("0.0000");
yBlock.Text = "Y:"+f.Y.ToString("0.0000");
zBlock.Text = "Z:"+f.Z.ToString("0.0000");
acc.Stop();
});
}
答案 0 :(得分:0)
设置页面应设置主页面和设置页面都可以访问的“全局”类的成员。有关如何执行此操作的信息,请参阅此question。
理想情况下,这个类只会保存加速计类型信息。
答案 1 :(得分:0)
您还可以使用NavigationService将加速计数据发送到不同的页面。这可用于在页面之间发送简单数据。
// In your settings page use the following code
NavigationService.Navigate(new Uri(string.format("/Start.xaml?xValue={0}&yValue={1}&zValue={2}", xBlock.Text, yBlock.Text, zBlock.Text), UriKind.Relative));
然后在Start.xaml.cs中将以下代码添加到OnNavigatedTo方法中以读取数据
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedTo(e);
string x = "";
string y = "";
string z = "";
NavigationContext.QueryString.TryGetValue("xValue", out x);
NavigationContext.QueryString.TryGetValue("yValue", out y);
NavigationContext.QueryString.TryGetValue("zValue", out z);
// Then what ever you want to do with x,y and z value
}
有关在页面之间传递数据的更多信息: - Passing parameters between pages, Windows phone 8