でコンテンツをラップすることは可能StackPanel
ですか?
WrapPanel
代わりに a を使用できることはわかっています。しかし、コードを変更する理由から、.a を使用する必要がありStackPanel
ます。
StackPanel
それで、 5つのアイテムを言ってからラップでアイテムを作る方法はありますか...ありがとう!
でコンテンツをラップすることは可能StackPanel
ですか?
WrapPanel
代わりに a を使用できることはわかっています。しかし、コードを変更する理由から、.a を使用する必要がありStackPanel
ます。
StackPanel
それで、 5つのアイテムを言ってからラップでアイテムを作る方法はありますか...ありがとう!
StackPanel
必要な数のアイテムを含むネストされた を作成します。
<StackPanel Orientation="Horizontal">
以下の例では、2 つの行があり、それぞれが要素で占められており、それぞれに 5 つの項目が含まれており、これらの項目が横に並んで表示されます。
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Horizontal">
<Item1 />
<Item2 />
<Item3 />
<Item4 />
<Item5 />
</StackPanel>
<StackPanel Orientation="Horizontal">
<Item1 />
<Item2 />
<Item3 />
<Item4 />
<Item5 />
</StackPanel>
</StackPanel>
<StackPanel>
<StackPanel.Style>
<Style TargetType="{x:Type StackPanel}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type StackPanel}">
<WrapPanel/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</StackPanel.Style>
</StackPanel>
シナリオによっては、 UniformGridを使用できます。ここにもいくつかの例があります。
このように、5 つのアイテムの後にラップするように定義できます。
<UniformGrid Columns="5">
<Button />
<Button />
<Button />
</UniformGrid>
ただし、各アイテムはまったく同じ幅になるため、これが機能するかどうかはわかりません.
ラップパネルなしではできないと思います。スタック パネル内に wrapPanel を配置してみてください。その幅をスタック パネルの実際の幅に設定します。次のようにバインドできますWidth="{Binding ActualWidth, ElementName=StackPanel1}"
しかし、これは単なるハックになります。ラップ パネルがニーズに最も適していると思います。