2008-10-29 10 views
7

Esto se supone que es obvio, pero todavía no lo puedo descifrar.Problema de tamaño-contenido-diseño en WPF

En mi aplicación de ejemplo hay un botón y un cuadro de texto en un DockPanel. Si el contenido del cuadro de texto es más pequeño que el contenido del cuadro de texto, la ventana es tan grande como debe ser para mostrar el contenido del botón. Eso es lo que quiero. Pero si pongo más texto en el cuadro de texto de la ventana se hace más ancha :-(

El comportamiento que quiero es que la ventana se pone el ancho de acuerdo con los botones de contenido y el cuadro de texto envuelve su contenido (o/y muestra barras de desplazamiento si . es necesario)

Gracias

un código de ejemplo:

<Window x:Class="SO1.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Window1" SizeToContent="Width" FontSize="20"> 
    <DockPanel> 
     <Button DockPanel.Dock="Top">A rather long text</Button> 
     <TextBlock TextWrapping="Wrap">Short text</TextBlock> 
    </DockPanel> 
</Window> 

Respuesta

7

Habiendo probado, parece que la unión del TextBlock 's MaxWidth a la ActualWidth del Button logra el efecto que busca:

<Button x:Name="btn" DockPanel.Dock="Top">Short text</Button> 
<TextBlock TextWrapping="Wrap" 
    MaxWidth="{Binding ElementName=btn,Path=ActualWidth}">A rather long text</TextBlock> 
Cuestiones relacionadas