2010-11-05 13 views
7

estoy tratando de conseguir un StackPanel horizontal con un poco de texto, y luego un botón pegado todo el camino a la derecha. Intenté esto:contenido flotador Silverlight derecho

   <StackPanel Orientation="Horizontal"> 
        <TextBlock VerticalAlignment="Center" FontSize="14" Margin="5,0,0,0">Ahoy!</TextBlock> 
        <Button HorizontalAlignment="Right" Width="25" Height="25" Style="{StaticResource buttonGlassOrb}" Background="Red" /> 
       </StackPanel> 

Lo que no parece funcionar. Obviamente añadiendo un margen a la TextBlock va a funcionar, así:

   <StackPanel Orientation="Horizontal"> 
        <TextBlock VerticalAlignment="Center" FontSize="14" Margin="5,0,120,0">Ahoy!</TextBlock> 
        <Button HorizontalAlignment="Right" Width="25" Height="25" Style="{StaticResource buttonGlassOrb}" Background="Red" /> 
       </StackPanel> 

Pero eso es malo para todo tipo de razones. ¿Hay alguna forma más natural de hacer esto?

+0

Como se ha señalado por varios usuarios, la mejor solución es probablemente una cuadrícula. P: ¿Qué comportamiento específico de "StackPanel" está buscando? Eso determinará la configuración de la columna de cuadrícula. –

+0

Sí, me sentí muy tonto después de ver la respuesta. Solo necesitaba una grilla, así de simple. Soy bastante nuevo en WPF/Silverlight. Gracias. –

Respuesta

8

En lo personal, me gustaría utilizar una cuadrícula en lugar de un StackPanel para esto. Sólo tiene que añadir dos columnas, una colocada en el tamaño "*" y uno en "Auto", y poner su TextBlock en la columna uno, botón de la columna dos:

3

Utilice un DockPanel lugar: ajuste del muelle

<DockPanel> 
    <TextBlock VerticalAlignment="Center" FontSize="14" Margin="5,0,0,0">Ahoy!</TextBlock> 
    <Button DockPanel.Dock="Right" Width="25" Height="25" Style="{StaticResource buttonGlassOrb}" Background="Red" /> 
</DockPanel> 

El defecto es de izquierda por lo que se comporta como un StackPanel horizontal para los artículos que no tienen una configuración de muelle explícita.

+0

Esta es realmente la mejor respuesta para este problema. –

2

StackPanels están bien para escenarios simplistas, tan pronto como se desea tener un control completo sobre el diseño, uso de la red

Cuestiones relacionadas