1

WPFスクロールビューアに水平スクロールバーを表示するのに問題があります。にはScrollViewer、入力オブジェクトに基づいてコンテンツを動的にレンダリングするユーザーコントロールが含まれているため、サイズが可変である可能性があります。レンダリング時に、ユーザーコントロールの幅と高さを正しいサイズに設定します。

HorizontalScrollBarVisibilityVisibleに設定しました。これにより、常に表示されるようになりますが、表示されることはありません。有効化/無効化も試してみましたCanContentScrollが、違いはないようです。

垂直スクロールバーは問題なく正常に機能します。

                ScrollViewer scroll = new ScrollViewer();
                scroll.HorizontalContentAlignment = HorizontalAlignment.Left;
                scroll.VerticalContentAlignment = VerticalAlignment.Top;
                scroll.HorizontalScrollBarVisibility = ScrollBarVisibility.Visible;
                scroll.CanContentScroll = true;
                Grid.SetRow(scroll, 1);

                GalaxyViewer viewer = new GalaxyViewer(g);
                viewer.HorizontalAlignment = HorizontalAlignment.Left;
                viewer.VerticalAlignment = VerticalAlignment.Top;
                viewer.HideShips();
                viewer.IsEditable = this.IsEditable;
                viewer.GalaxyEdited += this._galaxyEditedHandler;
                if (this._activePlayer > 0 && !this.IsEditable) viewer.ShowShipsForPlayer(this._activePlayer);
                scroll.Content = viewer;
                ScrollViewer.SetCanContentScroll(viewer, true);
                ScrollViewer.SetHorizontalScrollBarVisibility(viewer, ScrollBarVisibility.Visible);

                scroll.UpdateLayout();
                grid.Children.Add(scroll);

誰かがこれについて何かアイデア/解決策を持っていますか?

4

2 に答える 2

1

問題の原因を見つけました-スクロールバーが表示されていましたが、ウィンドウのサイズが変更されると、scollビューアを含むコントロールのサイズが自動的に変更されました。これは、水平のscollバーがディスプレイからクリップされていたことを意味します。

于 2010-12-07T12:06:53.357 に答える
1
 WPF Layout Controls - ScrollViewer

ほとんどの場合、コントロールのサイズはわかりません。これは、画面に表示されます。また、これはwpfの基本的なプロパティであるため、製品の解像度に依存する場合があります。そのため、WPFには、コンテンツが表示領域に出力されるたびにこれらのコンテンツのスクロールを有効にできるScrollViewer(Attachedプロパティ)というコントロールがあります。

<ScrollViewer HorizontalScrollBarVisibility="Visible" ScrollViewer.VerticalScrollBarVisibility="Visible">
        <Grid ScrollViewer.HorizontalScrollBarVisibility="Visible">
            <Grid RenderTransformOrigin="0.555,0.491">
                <Grid.RowDefinitions>

                    <RowDefinition Height="auto"></RowDefinition>
                    <RowDefinition Height="auto"></RowDefinition>
                    <RowDefinition Height="auto"></RowDefinition>
                    <RowDefinition Height="auto"></RowDefinition>

                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition ></ColumnDefinition>
                    <ColumnDefinition ></ColumnDefinition>
                    <ColumnDefinition ></ColumnDefinition>
                    <ColumnDefinition ></ColumnDefinition>
                    <ColumnDefinition ></ColumnDefinition>
                    <ColumnDefinition ></ColumnDefinition>
                    <ColumnDefinition ></ColumnDefinition>
                    <ColumnDefinition ></ColumnDefinition>
                </Grid.ColumnDefinitions>
    </Grid>
    </ScrollViewer>


Above example is a implementation of horizontal and vertical  scrollbar in a wpf form.

WPF TextBlockの自動垂直スクロールバー?

詳細については、次のURLをご覧ください:http ://wpfbugs.blogspot.in/2014/02/wpf-layout-controls-scrollviewer.html

于 2015-11-18T14:22:16.707 に答える