it-swarm.com.de

So fügen Sie einem Fenster in C # eine Bildlaufleiste hinzu

Ich habe ein Fenster wie folgt erstellt:

Window myWindow = new Window();

Wie kann ich diesem Fenster eine vertikale Bildlaufleiste hinzufügen und die Bildlaufleiste nur sichtbar machen, wenn die Höhe nicht groß genug ist, um alle Elemente anzuzeigen.

20
Shamim Hafiz

Sie können dem Fenster ein ScrollViewer - Element hinzufügen und die erforderlichen Steuerelemente in das ScrollViewer - Steuerelement einfügen.

<ScrollViewer VerticalScrollBarVisibility="Auto">
    ...
</ScrollViewer>

Oder wenn Sie es in der Code-Behind-Datei codieren möchten, können Sie schreiben

ScrollViewer viewer = new ScrollViewer();
viewer.VerticalScrollBarVisibility = ScrollBarVisibility.Auto;
// append scroll viewer to window
52
Osiris76

Sie können einem Fenster selbst keine Bildlaufleiste hinzufügen. Sie können den Steuerelementen nur Bildlaufleisten hinzufügen. I.E. zu einem Raster in Ihrem Fenster.

Beispiel:

<Grid  ScrollViewer.CanContentScroll="True"
       ScrollViewer.HorizontalScrollBarVisibility="Auto">
   ...
</Grid>

BEARBEITEN:

Ich habe gerade erkannt, dass Window auch eine ScrollViewer-Eigenschaft hat. Ich bin nicht sicher, wie diese Eigenschaft für ein Fenster funktioniert und wie ein solches Fenster aussehen würde. Probieren Sie es aus, aber es werden keine Bildlaufleisten angezeigt.

EDIT 2:

ScrollViewer sv = new ScrollViewer();
sv.VerticalScrollBarVisibility = ScrollBarVisibility.Visible;
myGrid.Children.Add(sv);
2
Christian

versuche dies

var xpage = your user control or page to which scroll bar need to be added at runtime

            xpage.SetValue(ScrollViewer.CanContentScrollProperty, true);
            xpage.SetValue(ScrollViewer.HorizontalScrollBarVisibilityProperty, ScrollBarVisibility.Auto);
            xpage.SetValue(ScrollViewer.VerticalScrollBarVisibilityProperty, ScrollBarVisibility.Auto);

            var scrollViewer = xpage.Content as ScrollViewer;
            if (scrollViewer != null)
            {
                var content = scrollViewer.Content;
                scrollViewer.Content = null;
                xpage.Content = content;
            }
            else
            {
                var content = xpage.Content;
                xpage.Content = null;
                xpage.Content = new ScrollViewer { Content = content };
            }
0
NidhinSPradeep