0

チェックボックスの複数列のリストを作成したいのですが、ここにキャッチがあります-ウィンドウのサイズを変更すると、テキストサイズを含め、それに応じてすべてをスケーリングしたいと思います。WrapPanel と ViewBox を利用しようとしましたが、XAML を正しく取得できません。これらのコントロールは最適なオプションですか、それとも ListBox を使用する必要がありますか (選択機能やスクロールバーは必要ないことに注意してください)。これをどのように達成できるかについての提案や例をいただければ幸いです。私はMVVMを使用していますが、違いがあればリストはデータバインドされます。

ところで、WPF を開始して以来、どのコントロールのサイズを子に、どのサイズを親に割り当てるかを理解するのに苦労してきました。各コントロールの動作をまとめた良いサイト、チート シート、またはその他のものはありますか?

4

1 に答える 1

1

可変数の子要素がある場合は、UniformGridを ViewBox に配置できます。

子要素を DataTemplate で視覚化する必要がある場合は、そのItemsPanelような UniformGrid に設定されたプロパティで ItemsControl を使用する必要があります。

<Viewbox Stretch="Uniform">
    <ItemsControl ItemsSource="{Binding Items}" Width="400" Height="200">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <UniformGrid Columns="4"/>
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Border Background="AliceBlue">
                    <CheckBox Content="{Binding Label}" IsChecked="{Binding IsChecked}"
                              HorizontalAlignment="Center" VerticalAlignment="Center"/>
                </Border>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</Viewbox>
于 2012-08-24T08:46:30.020 に答える