¿Cómo hago para que un control WPF cambie su tamaño según el contenido que contiene?¿Tamaño de control de Wpf al contenido?
Respuesta
Para la mayoría de los controles, configure su alto y ancho en Auto
en el XAML, y se ajustará para ajustarse a su contenido.
En el código, establece el ancho/alto en double.NaN
. Para más detalles, vea FrameworkElement.Width, particularmente la sección "observaciones".
Tuve un problema como este por el cual había especificado el ancho de mi ventana, pero tenía la altura establecida en Auto
. El niño DockPanel
tenía su VerticalAlignment
configurado en la parte superior y la ventana tenía su VerticalContentAlignment en la parte superior, sin embargo, la ventana aún sería mucho más alta que el contenido.
El uso de Snoop, descubrí que la ContentPresenter
dentro de la ventana (parte de la ventana, algo que no había puesto allí) tiene su VerticalAlignment
conjunto de Stretch
y no puede ser cambiado sin retemplating toda la ventana!
Después de mucha frustración, descubrí la propiedad SizeToContent
- puede usar esto para especificar si desea que la ventana tenga un tamaño vertical, horizontal o ambos, de acuerdo con el tamaño de los contenidos: todo está dimensionando bien ahora, ¡No puedo creer que me haya llevado tanto tiempo encontrar esa propiedad!
Ojalá todas las grillas tuvieran esta propiedad ... – Shimmy
Cuando el problema se aplica a la ventana de nivel superior Configure SizeToContent = "WidthAndHeight". Perdí horas en esto, ¡no es intuitivo! Ver http://stackoverflow.com/questions/812079/window-heightauto-problem – DeveloperDan
Aunque una 'Ventana' es un' Control', creo que el OP se refería a un 'UserControl', que no tiene' SizeToContent 'propiedad. De lo contrario, el OP usaría el término "Ventana" en el tema. – ProfK
Si está utilizando la cuadrícula o un componente similar: En XAML, asegúrese de que los elementos en la cuadrícula tengan Grid.Row y Grid.Column definidos, y asegúrese de que no tengan márgenes. Si usó el modo de diseñador o Expression Blend, podría haber asignado márgenes relativos a toda la grilla en lugar de a celdas particulares. En cuanto a dimensionamiento celular, añado una célula adicional que llena el resto del espacio:
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
que tenía un control de usuario, que se sentó en la página en una forma de manera libre, no limitados por otro recipiente, y el el contenido dentro del control de usuario no se dimensionaría automáticamente, sino que se expandiría al tamaño completo de lo que se le entregó al usuario.
Para obtener el control de usuario simplemente el tamaño de su contenido, para la altura única, lo coloqué en una cuadrícula con el conjunto de filas de tamaño automático como este:
<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. Problema de tamaño-contenido-diseño en WPF
- 2. Wpf plantilla de control personalizado - tamaño de fuente relativo
- 3. Tamaño del contenido de control de contenido para rellenar Silverlight 4
- 4. wpf ancho de control vinculante
- 5. QListWidget ajustar el tamaño al contenido
- 6. WPF Calendar Control aferrándose al mouse
- 7. ¿Agregar propiedades al control WPF personalizado?
- 8. Alternativas al control WebBrowser en WPF?
- 9. Limitaciones de tamaño de ventana por contenido
- 10. WPF herencia de control
- 11. Tamaño automático ElementHost a su contenido
- 12. ¿Cómo se accede al contenido de un control ASP.NET?
- 13. ¿Cómo asignar atajos de teclado al control de cinta WPF?
- 14. WPF - Vincular propiedad de imagen al control de imagen
- 15. Forzar un control WPF personalizado para cambiar el tamaño correctamente
- 16. WPF invocar un control
- 17. iOS: cambiar el tamaño de UIWebView para adaptarse al contenido?
- 18. VSTO WPF Complemento de Outlook: problemas para actualizar ElementHost que contiene contenido WPF después de cambiar el tamaño
- 19. ¿Controles WPF de tamaño variable?
- 20. ¿Cómo acceder al control C# WPF de manera segura?
- 21. ¿Cómo cambio el tamaño de un div automáticamente al tamaño de su contenido cuando el contenido del div ha cambiado?
- 22. ¿Qué control de cuadrícula/cuadrícula en WPF?
- 23. WPF: Animar control de usuario en carga
- 24. Copie un control WPF programáticamente
- 25. Tamaño de ventana de WPF
- 26. Tamaño de configuración de la aplicación wpf/caliburn.micro mientras permite que el contenido cambie de tamaño con la ventana principal.
- 27. botones de tamaño uniforme de acuerdo al contenido de botón grande
- 28. Renderizar control WPF encima de WindowsFormsHost
- 29. Problema al ajustar el tamaño de la celda excel al tamaño del contenido al usar apache poi
- 30. WPF DataGrid Plantilla de control
Además de una gran cantidad de controles establecido su alineación horizontal y vertical para estirar, lo que hará que llenen un área disponible, por lo que probablemente deba especificar estas propiedades, por ej. HorizontalAlignment = "Left" VerticalAlignment = "Top". –