2


1

適切なキーボードサポートを提供するSilverlight 3または4メニューコントロールを探している

クライアントにSilverlightを使用するN層アプリケーションがあります。 1つの特定の要求としての顧客-私は合理的であると思いました:メニューナビゲーションを含むすべてのアクションはキーボードから利用できる必要があります。 + Silverlight 4を試してみると、メニューコントロールが見つからないことに驚いたのでソースおよび商用メニューコントロール。 数時間検索した後、まともなキーボードサポートを提供するコントロールを見つけることができませんでした。 ほとんどのコントロールはサポートも基本的なサポートも提供しませんが、キーボードを介して最初の項目にフォーカスを取得できるコントロールは1つもありません。キーボード(矢印キー)を使用できますが、最初にマウスでコントロールを選択する必要があります キーボードショートカットのサポートを提供するコントロールはありません。

降下サポートを提供するSilverlightコントロールを知っている人はいますか?

2 Answer


2


個人的には、組み込みのMenuコントロールが含まれていないことがうれしいです。 私はあなたのアプリがそれを必要とすることを提案しているわけではありませんが、少なくともあなたが持っている機能なしで機能を提供できればそれは良いことです。

あなたが探しているように聞こえるのは、 `+ F`のようなメニューアクセッサキーです。 さて、ここで問題になります。そのためには、APIがページ全体のキープレビューイベントをサポートする必要があります。これにより、どのコントロールにフォーカスがある場合でも、必要なキーの組み合わせをインターセプトできます。

Silverlightはそのようなイベントを提供しません。 できる最善の方法は、 `UserControl`のKeyDownイベントまたはKeyUpイベントです。 UIにフォーカスを取得できる別のコントロールがなくても、フォーカスを取得できるように、タブストップにすることができます。

ただし、KeyDownイベントまたはKeyUpイベントを処理済みとしてマークするコントロールは、 `UserControl`がそのイベントを受信することを防ぎ、そのため、このような直接キーボードアクセスに対するメニューの応答がパッチが多く、一貫性がなくなります。 これは、ほとんどのユーザーがバグとして解釈します。

この理由のために、メニューコントロールのベンダーは、プラットフォームの実際の制限によって評判が損なわれないように、この機能を提供していません。

結論として、この機能が必要な場合は、おそらくKeyUpまたはKeyDownイベント処理で適切に配信できますが、UIを厳密にテストして、機能しない状況があるかどうかを確認する必要があります。


0


このメニューはかなりまともな解決策を提供します:

ブラウザの制限により、キーボード修飾子の選択は、ほとんどの場合Ctrl + Altに制限されます。