問題タブ [tab-ordering]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - WPF DataGrid DataGridRowオーバーライドItemsPanelがタブオーダーを壊す
ウィンドウ内で拡大および縮小する必要がある 2D グリッドを必要とする WPF プロジェクトに取り組んでいます。これを行うために、DataGrid 内の ItemsPanels を UniformGrids に置き換えました。これを行うと、コントロールが正しく伸縮します。
残念ながら、何らかの理由で、これにより DataGrid 内のタブ オーダーが壊れます。タブを押すと、次の列にジャンプするのではなく、行をドロップダウンします。タブが行の最後に達すると、次の列の先頭に移動し、それを続けます。左、右、上、下の矢印キーはすべて期待どおりに機能します。影響を受ける唯一の機能はタブ オーダーです。DataGridRow スタイルを削除すると、タブ オーダーは自動的に修正されますが、行はウィンドウと共に拡張されません。
StackPanel でも同じタブの症状が発生するため、この問題は UniformGrid だけに限定されているようには見えません。
このタブの問題、または必要に応じてグリッドを拡大および縮小する別の方法を修正するために、どのように、または何を探すべきかを誰かが知っていますか?
XAML の例:
コードビハインドの例:
c# - コントロールのタブ オーダーで最初のコントロールを見つける方法は?
以下のように、タブ オーダーの最初のコントロールを取得する拡張メソッドを記述Control
します。
問題は、TabOrder==0
! (たとえば、開発者Taborder==0
がデザイン モードでコントロールを削除するなど) を持つ既存のコントロールが存在しない可能性があり、実行時にエラーが発生することです。
私はこのコードでこの問題を処理します:
しかし、それは最善の方法ではないと思います。この問題を処理するためのより良い方法を提案できる人はいますか? 前もって感謝します。
wpf - グリッドの既定のタブ オーダー
このGrid
コントロールでは、既定のタブ オーダーが行順、次に列順になっているように見えます。つまり、最初の列のすべてのコントロールをタブで移動し、次に 2 番目の列のすべてのコントロールをタブで移動できます。
ただし、最初の行のすべてのコントロールをタブで移動してから、2 行目のすべてのコントロールをタブで移動できるようにしたいと考えています。
TabIndex
for each コントロールを設定することで、この問題を解決しました。しかし、これを手動でコーディングする必要がなければいいのですが。デフォルトのタブオーダーを変更する方法はありますか?