WPF-StackPanel-autosize
Ich habe eine Canvas
namens mainCanvas und ich bin programmgesteuert hinzufügen eines ScrollViewer
und ein StackPanel
um es in Ordnung von
...mainCanvas
......scrollView
.........pnl
............ (mehr gestapelt Kontrollen)
Ich bin versucht, meine StackPanel-Steuerelement, um automatisch die Größe, um die mainCanvas Größe und lassen Sie scrollen, wenn es zu groß ist. Code so weit unten
mainCanvas.Children.Clear();
//Create the container
ScrollViewer scrollView = new ScrollViewer();
scrollView.VerticalScrollBarVisibility = ScrollBarVisibility.Auto;
scrollView.CanContentScroll = true;
scrollView.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch;
scrollView.VerticalAlignment = System.Windows.VerticalAlignment.Stretch;
StackPanel pnl = new StackPanel();
//pnl.Height = 500; //Works and allows scrolling but doesn't resize
pnl.Height = Double.NaN; //(Double.NaN is Auto) Doesn't Work - StackPanel overflows parent window
pnl.VerticalAlignment = System.Windows.VerticalAlignment.Stretch;
pnl.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch;
scrollView.Content = pnl;
//Add the ScrollView and StackPanel to Parent Window
mainCanvas.Children.Add(scrollView);
Leider StackPanel passt nicht zu den Eltern, und nicht automatisch.
mainCanvas
bereits in XAML mit Einstellungen:
Width= "Auto"
Height= "Auto"
HorizontalAlignment = "Stretch"
VerticalAlignment = "Stretch"
Bekomme ich Dinge, die semi-Arbeit durch die Verwendung pnl.Height = 500;
was zeigt mir die scrollbar funktioniert, wenn das Stackpanel-Steuerelement Höhe beschränkt ist. Aber dies ist nur manuell Montage der Höhe nach auf die volle Bildschirmgröße und so nicht autosize wenn die Größe des app.
Ich hoffte Einstellung pnl.Height = Double.NaN;
auto-und V/H Anpassung an Strecke funktionieren würde, aber das StackPanel noch überschneidungen, die alle Steuerelemente auf seine maximale Größe.
Kann jemand mich in die richtige Richtung, um mein StackPanel passen die Eltern mainCanvas und autosize, wenn ich die Größe entweder der Muttergesellschaft und/oder die wichtigsten app-Fenster mit Lauftext?
Danke
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, die Leinwand ist für die absolute Positionierung nur. Mit einem Raster, wie Sie Ihr panel, stattdessen würde wahrscheinlich geben Ihnen das gewünschte Ergebnis.
Den
StackPanel
sich nicht zu Strecken, um füllen Sie Ihre container, wie Sie bemerkt. Aber Sie können binden Sie IhreMinWidth
undMinHeight
Eigenschaften zu seinem container Breite/Höhe.var binding = new Binding();
gibt mir eine Fehlermeldung " System.Windows.Formen.Verbindlich " enthält keinen Konstruktor, der 0-Argumente - was soll ich in den Inhalt des new Binding(?)Binding
Klasse -- sollte das System.Windows.Daten.Verbindlich