Wie mache ich ein WPF-Steuerelement, um seine Größe nach dem Inhalt zu ändern?Wpf Kontrollgröße zum Inhalt?
Antwort
Für die meisten Steuerelemente legen Sie im XAML die Höhe und Breite auf Auto
fest, und die Größe wird an den Inhalt angepasst.
Im Code legen Sie die Breite/Höhe auf double.NaN
fest. Einzelheiten finden Sie unter FrameworkElement.Width, insbesondere im Abschnitt "Bemerkungen".
Ich hatte ein Problem so, wobei ich die Breite meines Fensters angegeben hatte, aber die Höhe auf Auto
gesetzt hatte. Das Kind DockPanel
hatte es VerticalAlignment
auf Top gesetzt und das Fenster hatte seine VerticalContentAlignment auf Top gesetzt, aber das Fenster wäre immer noch viel größer als der Inhalt.
Snoop verwenden, entdeckte ich, dass die ContentPresenter
innerhalb des Fensters (Teil des Fensters, nicht etwas, das ich gesetzt hatte es) hat es VerticalAlignment
Set Stretch
und kann nicht ohne retemplating das gesamte Fenster geändert werden!
Nach einer Menge Frustration, entdeckte ich die SizeToContent
Eigenschaft - Sie können dies verwenden, um anzugeben, ob Sie das Fenster vertikal, horizontal oder beides, je nach der Größe des Inhalts - alles Größe jetzt schön, ich Ich kann nicht glauben, dass es so lange gedauert hat, dieses Eigentum zu finden!
Ich wünschte, alle Gitter würden diese Eigenschaft haben ... – Shimmy
Wenn das Problem für das oberste Fenster gilt Set SizeToContent = "WidthAndHeight". Ich habe hier Stunden verloren - es ist nicht intuitiv! Siehe http://stackoverflow.com/questions/812079/window-heightauto-problem – DeveloperDan
Obwohl ein 'Window' ein' Control' ist, denke ich, dass das OP sich auf ein 'UserControl' bezieht, das keinen' SizeToContent 'hat 'Eigentum. Andernfalls würde das OP den Begriff "Fenster" im Betreff verwenden. – ProfK
Wenn Sie die Raster- oder ähnliche Komponente verwenden: Stellen Sie in XAML sicher, dass Grid.Row und Grid.Column für die Elemente im Raster definiert sind, und stellen Sie sicher, dass sie keine Ränder haben. Wenn Sie den Designer-Modus oder Expression Blend verwendet haben, könnte es Ränder relativ zum gesamten Raster statt zu bestimmten Zellen zugewiesen haben. Wie für die Zell Sizing, ich eine zusätzliche Zelle hinzufügen, die den Rest des Raumes füllt:
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
ich ein Benutzersteuer hatte, die auf Seite in freier Form Art und Weise setzte sich nicht durch einen anderen Behälter beschränkt, und die Der Inhalt innerhalb des Benutzersteuerelements würde nicht automatisch skalieren, sondern auf die volle Größe des Benutzersteuerelements erweitert.
Um dem Benutzer die Kontrolle einfach Größe auf den Inhalt, für die Höhe zu bekommen nur ich es in ein Raster mit auf Zeile platziert Autogröße festgelegt wie folgt aus:
<Grid Margin="0,60,10,200">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<controls1:HelpPanel x:Name="HelpInfoPanel"
Visibility="Visible"
Width="570"
HorizontalAlignment="Right"
ItemsSource="{Binding HelpItems}"
Background="#FF313131" />
</Grid>
- 1. Kontrollgröße des Alarmdialogfelds in android
- 2. WPF Label Inhalt Ausrichtung
- 3. WPF - Transparenz - Stream Desktop Inhalt
- 4. Inhalt in einem Stackpanel wpf
- 5. WPF TreeView zeigt keinen Inhalt
- 6. WPF - Template nicht Mitglied Inhalt
- 7. WPF wie Expander bewegen Inhalt
- 8. WPF - ContentControl Inhalt als DrawingVisual
- 9. Fit TitleWindow zum Inhalt
- 10. WPF Showdialog Textbox mit var Inhalt
- 11. WPF-Bindungstextbox zum Wörterbucheintrag
- 12. WPF-Steuerelementgröße
- 13. WPF: Scroll ItemControl Inhalt Fester Kopf
- 14. Größe-zu-Inhalt-Layout-Problem in WPF
- 15. Inhalt von WPF ContentControl als ContentControl
- 16. Inhalt dynamisch im wpf-Fenster ändern
- 17. WPF - Inhalt für ein Tabitem dynamisch erstellen
- 18. WPF: Sichtbarkeit Bindung von Zeichenfolge Inhalt
- 19. ändern Inhalt der Image programmatisch (WPF)
- 20. WPF ändern Zelle Hintergrundfarbe basierend auf Inhalt
- 21. Ausrichten von Inhalt in einer WPF Viewbox
- 22. bewegen TopSearch zum Inhalt div
- 23. Idee zum Inhalt übergeben. Hilfe
- 24. Div passt nicht zum Inhalt
- 25. Gute Ressourcen zum Lernen WPF
- 26. Steuerelement zum Stil hinzufügen wpf
- 27. Wie kann ich Inhalt von TreeViewItem in WPF bekommen?
- 28. WPF: Vorlage oder UserControl mit 2 (oder mehr!) ContentPresenter zum Präsentieren von Inhalt in 'Slots'
- 29. WPF: Berechnung der Fenstergröße basierend auf dem Inhalt
- 30. Den folgenden Inhalt zum Zusammenfalten bei Verwendung der Transformation zum Ausblenden von Inhalt erhalten
Außerdem setzen viele Kontrollen ihre Horizontal- und VerticalAlignment to Stretch, die dazu führen, dass sie einen verfügbaren Bereich ausfüllen, so dass Sie wahrscheinlich diese Eigenschaften angeben müssen, z HorizontalAlignment = "Links" VerticalAlignment = "Top". –