Windows 8 有没有办法在Windows 8 metro应用程序中获得一键滚动功能?

Windows 8 有没有办法在Windows 8 metro应用程序中获得一键滚动功能?,windows-8,microsoft-metro,windows-runtime,Windows 8,Microsoft Metro,Windows Runtime,在Windows 8 Consumer Preview中,在开始屏幕中将鼠标向左或向右移动会导致内容滚动 标准控件(以及当前发布的预览应用程序)似乎不支持这一点 有什么方法可以实现这一点吗?您可以执行以下操作来获取鼠标移动到屏幕之外的信息,并使用增量信息滚动内容 使用Windows.Devices.Input; var mouse=MouseDevice.GetForCurrentView(); mouse.MouseMoved+=mouse\u MouseMoved; 私有无效鼠标\u Mou

在Windows 8 Consumer Preview中,在开始屏幕中将鼠标向左或向右移动会导致内容滚动

标准控件(以及当前发布的预览应用程序)似乎不支持这一点


有什么方法可以实现这一点吗?

您可以执行以下操作来获取鼠标移动到屏幕之外的信息,并使用增量信息滚动内容

使用Windows.Devices.Input;
var mouse=MouseDevice.GetForCurrentView();
mouse.MouseMoved+=mouse\u MouseMoved;
私有无效鼠标\u MouseMoved(MouseDevice sender,MouseEventArgs args)
{
tb.Text=args.MouseDelta.X.ToString();
}

您可以执行以下操作以获取鼠标移动到屏幕之外的信息,并使用增量信息滚动内容

使用Windows.Devices.Input;
var mouse=MouseDevice.GetForCurrentView();
mouse.MouseMoved+=mouse\u MouseMoved;
私有无效鼠标\u MouseMoved(MouseDevice sender,MouseEventArgs args)
{
tb.Text=args.MouseDelta.X.ToString();
}

今年在TechEd North America,在UI平台首席项目经理的一次会议之后,我问了这个问题

他的回答是:不,应用程序不能靠边缘推来滚动。WinJS和WinRT/XAML应用程序甚至无法获得您自己实现它所需的事件。应用程序在鼠标指针级别获取事件,一旦鼠标指针到达屏幕边缘,它就不能再移动了,你也不会获得更多的事件。(好吧,它可能会上下摆动一点,但如果它碰到一个角落就不会。无论如何,它还不足以像开始屏幕那样滚动。)

他提到,如果你正在编写一个C++/DirectX应用程序,你将能够得到你自己所需要的原始鼠标输入——你可以得到低级的“设备按DX,DY移动”,而不是高级的“指针移动到X,Y”。我猜开始屏幕就是这样做的,虽然我不想问

但不,它不是内置的,它不是你可以自己实现的(除非你用低级C++/DirectX编写你的应用程序),而且听起来他们似乎没有计划在Windows8发布之前添加它


就我个人而言,我认为与开始屏幕相比,他们让应用程序感觉到有问题是相当短视的,但显然他们并不关心诸如可用性之类的小事

今年,在TechEd North America的一次会议后,我问了这个问题,该会议由UI平台的首席程序经理主持

他的回答是:不,应用程序不能靠边缘推来滚动。WinJS和WinRT/XAML应用程序甚至无法获得您自己实现它所需的事件。应用程序在鼠标指针级别获取事件,一旦鼠标指针到达屏幕边缘,它就不能再移动了,你也不会获得更多的事件。(好吧,它可能会上下摆动一点,但如果它碰到一个角落就不会。无论如何,它还不足以像开始屏幕那样滚动。)

他提到,如果你正在编写一个C++/DirectX应用程序,你将能够得到你自己所需要的原始鼠标输入——你可以得到低级的“设备按DX,DY移动”,而不是高级的“指针移动到X,Y”。我猜开始屏幕就是这样做的,虽然我不想问

但不,它不是内置的,它不是你可以自己实现的(除非你用低级C++/DirectX编写你的应用程序),而且听起来他们似乎没有计划在Windows8发布之前添加它


就我个人而言,我认为与开始屏幕相比,他们让应用程序感觉到有问题是相当短视的,但显然他们并不关心诸如可用性之类的小事<代码>

我注意到,即使在演示应用程序中,此功能也不存在。我希望他们将其作为默认值添加,这将是有意义的。鼠标/触摸兼容性仍然不是100%IMHO。您能建议如何重新编程吗?谢谢在“开始”菜单上按住鼠标左键不会导致我滚动任何内容。如果将“开始”屏幕上的鼠标移向屏幕的左/右边缘,它将开始滚动-无需按任何键。滚动的速度取决于向边缘移动的速度。这在任何预览应用程序或默认控件中都不起作用。这让我觉得很不一致,你有点希望所有这些控件(如启动屏幕上的控件)在windows 8的metro部分以相同的方式运行。我想我必须先单击才能这样做-也许是为了设置焦点?它似乎可以检测鼠标移动,即使光标无法移动到屏幕边缘之外。我想你可以用DirectX做到这一点……我注意到,即使在演示应用程序中,这个功能也还没有实现。我希望他们将其作为默认值添加,这将是有意义的。鼠标/触摸兼容性仍然不是100%IMHO。您能建议如何重新编程吗?谢谢在“开始”菜单上按住鼠标左键不会导致我滚动任何内容。如果将“开始”屏幕上的鼠标移向屏幕的左/右边缘,它将开始滚动-无需按任何键。滚动的速度取决于向边缘移动的速度。这在任何预览应用程序或默认控件中都不起作用。这让我觉得很不一致,你有点希望所有这些控件(如启动屏幕上的控件)在windows 8的metro部分以相同的方式运行。我想我必须先单击才能这样做-也许是为了设置焦点?它似乎可以检测鼠标移动,即使光标无法移动到屏幕边缘之外。我想你可以用DirectX做到这一点……当然你可以这样做,但由于它在Windows8的“开始”菜单中本机工作,标准控件自然会直接支持它。无论如何