Windows 8コンシューマプレビューでは、開始画面の左端または右端にマウスを移動すると内容がスクロールします。Windows 8メトロアプリでスクロール機能を使用する方法はありますか?
標準コントロール(および現在リリースされているプレビューアプリ)は、これをサポートしていないようです。
これを行う方法はありますか?
Windows 8コンシューマプレビューでは、開始画面の左端または右端にマウスを移動すると内容がスクロールします。Windows 8メトロアプリでスクロール機能を使用する方法はありますか?
標準コントロール(および現在リリースされているプレビューアプリ)は、これをサポートしていないようです。
これを行う方法はありますか?
私はPaul Gusmorinoによって与えられたセッションの1つ、UIプラットフォーム用のリードプログラムマネージャの後、今年開催されたTechEd北米でこの質問をしました。
彼の答えは、いいえ、アプリはスクロールすることができませんでした。 WinJSとWinRT/XAMLアプリケーションでは、自分で実装する必要があるイベントを取得することさえできません。 Appsはマウスポインタのレベルでイベントを取得します。マウスポインタが画面の端に達すると、それ以上は移動できず、それ以上のイベントは発生しません。 (まあ、ちょっと上下に動かすかもしれませんが、それがコーナーに当たった場合ではありません。どんな速度でも、開始画面のスクロール方法はスクロールするのには不向きです)。
彼は、 C++/DirectXアプリケーションを作成すると、あなた自身がこれを行うために必要な生のマウス入力を得ることができます - ハイレベルの "ポインタをXに移動したのではなく、低レベルの" DX、DYで移動したデバイス " 、Y "である。私はこれを推測していますが、私は尋ねるとは思っていませんでしたが、開始画面はそれを行います。
いいえ、組み込みではありません。低レベルのC++/DirectXでアプリケーションを作成しない限り、自分で実装できるものではなく、Windows 8より先に追加する計画はないようです。
私は個人的には、スタート画面と比べてアプリが窮地に陥っているのはかなり目立っていると思いますが、利便性のようなものはほとんど心配していません。 </rant>
マウスを画面外に移動し、デルタ情報を使用してコンテンツをスクロールする方法については、次の操作を行うことができます。
using Windows.Devices.Input;
var mouse = MouseDevice.GetForCurrentView();
mouse.MouseMoved += mouse_MouseMoved;
private void mouse_MouseMoved(MouseDevice sender, MouseEventArgs args)
{
tb.Text = args.MouseDelta.X.ToString();
}
これは何かのようにすることができますが、これはWindows 8のスタートメニューでネイティブに動作するので、標準コントロールがこれを直接サポートするのは当然です。とにかく、お返事いただきありがとうございます。 – vzczc
私はデモアプリケーションでさえ、この機能がまだ存在しないことに気付きました。私は彼らがデフォルトとしてそれを追加することを望む、それは意味をなさないだろう。マウス/タッチの互換性はまだ100%IMHOではありません。 –
これを再現する方法を教えてください。ありがとう。スタートメニューでマウスの左キーを押しても、私のためにスクロールするものはありません。 –
マウスを開始画面上で画面の左右に移動させると、スクロールが開始されます。キーを押す必要はありません。スクロールの速度は、エッジに向かって移動する速度に依存します。これはプレビューアプリやデフォルトのコントロールでは機能しません。これは私にとって非常に矛盾していると感じています。ウィンドウズ8のメトロ部分で同じように操作するようなコントロール(開始画面のようなもの)があります。 – vzczc