0

動的に読み込まれるボタンのセットを表示するグリッドの 3 列目に Itemscontrol があります。これらのコンテンツ (つまりボタン) がグリッドの最大幅を占めるようにしたかったのです。コンテンツがグリッドサイズを超えると、垂直スクロールバーが表示されます。

次のように、スクロールバー スタイルを ItemsControl に適用しました。

<Style x:Key="ItemControlStyle" TargetType="{x:Type ItemsControl}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type ItemsControl}">
                        <Border>
                            <ScrollViewer HorizontalContentAlignment="Stretch"
                                          CanContentScroll="True"
                                          HorizontalScrollBarVisibility="Disabled"
                                          Uid="ScrollViewer_9"
                                          VerticalScrollBarVisibility="Auto">
                                <ItemsPresenter Margin="{TemplateBinding Padding}"
                                                KeyboardNavigation.DirectionalNavigation="Cycle"
                                                SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
                                                Uid="ItemsPresenter_5" />
                            </ScrollViewer>
                        </Border>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

また、ItemsControl とその親である Grid の両方に、Horizo​​ntalAlignment と VerticalAllignMent を "Stretch" として適用まし

私が望む出力ビューは(グリッドの3列目)です ここに画像の説明を入力

私が得ている出力は次のとおりです。 ここに画像の説明を入力

サイズが超えた後にスクロールバーが表示されるはずですこれらのコンテンツをグリッドの最大幅に水平に調整するにはどうすればよいですか?

4

1 に答える 1

1

HorizontalAlignment=Stretchに追加するだけの場合ScrollViewerですか?

すなわち:

<Style x:Key="ItemControlStyle" TargetType="{x:Type ItemsControl}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type ItemsControl}">
                <Border>
                    <ScrollViewer  HorizontalAlignment="Stretch"
                                   HorizontalContentAlignment="Stretch"
                                   CanContentScroll="True"
                                   HorizontalScrollBarVisibility="Disabled"
                                   Uid="ScrollViewer_9"
                                   VerticalScrollBarVisibility="Auto">
                         <ItemsPresenter Margin="{TemplateBinding Padding}"
                                         KeyboardNavigation.DirectionalNavigation="Cycle"
                                         SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
                                         Uid="ItemsPresenter_5" />
                    </ScrollViewer>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
于 2012-10-22T08:37:08.367 に答える