を入力できるようにする必要stackpanel
がbuttons
ありますが、ボタンは最初にスタックパネルの下部に表示され、上に表示される必要があります。ボタンは動的に作成され、その数は不明であるため、視覚的なハッカーは機能しません。垂直方向の配置を試してみましたが、役に立ちませんでした。
7 に答える
そのようです:
<StackPanel VerticalAlignment="Bottom">
...
</StackPanel>
ボタンを上向きに配置するには、ボタンを追加するのではなく、位置0に挿入する必要があります。
もう 1 つの方法は、代わりに DockPanel を使用することです。
DockPanel で LastChildFill を false に設定するだけです。
次に、添付の Dock プロパティを、Bottom に追加する各ボタンに設定してから、DockPanel に追加します。
例 :
var button = new Button();
DockPanel.SetDock(button, Dock.Bottom);
この問題を解決する最善の方法は、stackpanelから派生したカスタムコンテナを実装することですが、実行時に要素が追加された場合の迅速で汚い解決策は次のとおりです。
public Window1()
{
InitializeComponent();
for (int i = 0; i < 10; i++)
{
Button btn = new Button();
btn.Content = "Button " + i;
MyStack.Children.Insert(0, btn);
}
}
アイテムを追加するのではなく、0の位置に挿入するだけです。
StackPanelを別のコンテナ(StackPanelではなくDockPanelの可能性があります)内に配置し、下揃えにしてみてください。次に、ボタンにデータを入力するときに、新しいボタンをそれぞれ最初の位置に配置します。
Nir による変換ソリューションが大好きです。変換を使用して実行できるかどうか疑問に思っていました。
ただし、注意点が 1 つあります。ListBox などの ScrollView ベースのコントロールでは、変換トリックを使用しないでください。スクロール バーの操作がコンテンツから反転されるためです。あなたがエンドユーザーでない限り、見るのは面白いです。;>