Accelerometer.Shaken 事件
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
当加速计检测到电脑已摇动时发生。
// Register
event_token Shaken(TypedEventHandler<Accelerometer, AccelerometerShakenEventArgs const&> const& handler) const;
// Revoke with event_token
void Shaken(event_token const* cookie) const;
// Revoke with event_revoker
Accelerometer::Shaken_revoker Shaken(auto_revoke_t, TypedEventHandler<Accelerometer, AccelerometerShakenEventArgs const&> const& handler) const;
public event TypedEventHandler<Accelerometer,AccelerometerShakenEventArgs> Shaken;
function onShaken(eventArgs) { /* Your code */ }
accelerometer.addEventListener("shaken", onShaken);
accelerometer.removeEventListener("shaken", onShaken);
- or -
accelerometer.onshaken = onShaken;
Public Custom Event Shaken As TypedEventHandler(Of Accelerometer, AccelerometerShakenEventArgs)
事件类型
示例
以下示例演示使用 C# 和 XAML 生成的 UWP 应用如何注册其 Shaken 事件处理程序。
private void ScenarioEnable(object sender, RoutedEventArgs e)
{
if (_accelerometer != null)
{
Window.Current.VisibilityChanged += new WindowVisibilityChangedEventHandler(VisibilityChanged);
_accelerometer.Shaken += new TypedEventHandler<Accelerometer, AccelerometerShakenEventArgs>(Shaken);
ScenarioEnableButton.IsEnabled = false;
ScenarioDisableButton.IsEnabled = true;
}
else
{
rootPage.NotifyUser("No accelerometer found", NotifyType.StatusMessage);
}
}
以下示例演示 Shaken 事件处理程序。
async private void Shaken(object sender, AccelerometerShakenEventArgs e)
{
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
_shakeCount++;
ScenarioOutputText.Text = _shakeCount.ToString();
});
}
注解
使用此事件可接收包含加速计的设备已摇动的通知。 在注册 Shaken 事件之前,应用不需要设置报告间隔。
对 Shaken 事件的支持取决于硬件和驱动程序支持。 实际上,很少有加速计支持 Shaken 事件。 如果加速计不支持 Shaken 事件,并且你为 Shaken 事件添加了事件处理程序,则不会引发错误,但事件处理程序中的代码不会运行。