0

したがって、ご存知のItemsControlように、 はその ItemsPanel で上から下にアイテムを生成するだけです。はい、ソート順を変更してさまざまな方法で生成できますが、実際の問題は次のとおりです。

複数の をItemsControl使用して、たとえば a を使用すると、次のような自然なタブ オーダーになります。ItemTemplateUIElementStackPanelItemsPanel

a. 1  2  3  4  5
b. 6  7  8  9  10
c. 11 12 13 14 15

予想どおり、配置の順序またはFlowDirection上で使用しItemTemplateて明らかに取得できます。

a. 5  4  3  2  1
b. 10 9  8  7  6
c. 15 14 13 12 11

さて、私の質問は、どうすれば達成できるでしょうか? (最も効率的な方法で)より似た順序。

C. 11 12 13 14 15
B. 6  7  8  9  10
A. 1  2  3  4  5

さて、あなたが考えているなら.. 「うーん、Shift+Tabダミー...」 まあ、それがオプションだったらいいのにと思います。要件は、タブを使用するだけで、コレクションを上から下ではなく下から上に逆に生成し、それらがそのコントロールにある間はタブの順序を逆にすることです。shift/tab イベントをハイジャックして、どうにかしてそれをただのタブに変換するのは賢明でしょうか? たとえそうだとしても、それは私の質問の一部にしか答えません。

うまくいけば、誰かが以前にこれに遭遇したか、興味深い質問を楽しんでいるので、洞察をいただければ幸いです。ありがとう!

4

2 に答える 2

0

StackPanel の StackPanel (つまり、データ バインディングなし) を使用して簡単な例を試してみましたが、フロー方向は垂直に積み重ねられたパネルには影響を与えないようです (TopToBottom または BottomToTop オプションがあればいいでしょう)。

あなたのデータモデルは(概念的に)リストのリストである必要があると思います.次に、ItemsControlsのItemsControlを作成する必要があります(レイアウトするのは面倒ですが、それは可能です)。外側を注文する必要がありますコントロールが C、B、A となるように逆方向にリストします (FlowDirection は垂直方向では何もしないため)。

于 2013-04-18T00:57:16.017 に答える
0

から継承しStackPanel、それをカスタムで逆にすることになりましたItemPanel。助けを求めることを恥ずかしく思うほど愚かな解決策でした. しかし、それを検討するために少し時間を割いてくれた人に感謝します.

于 2013-04-18T18:12:09.230 に答える