Silverlight浮动内容正确

时间:2010-11-05 15:56:38

标签: wpf silverlight

我正在尝试使用一些文本获得水平StackPanel,然后一个按钮一直粘到右侧。我试过这个:

                <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>

这似乎不起作用。显然,为TextBlock添加一个边距将起作用,如下所示:

                <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>

但是由于种种原因这很糟糕。还有更自然的方法吗?

3 个答案:

答案 0 :(得分:8)

就个人而言,我会使用Grid而不是StackPanel。只需添加两列,一组设置为“*”,一组设置为“Auto”,然后将TextBlock放入第一列,第二列设置Button:

答案 1 :(得分:3)

改为使用DockPanel:

<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>

默认的Dock设置为Left,因此对于没有显式Dock设置的项目,它的行为类似于Horizo​​ntal StackPanel。

答案 2 :(得分:2)

StackPanels适用于简单的场景,只要您想要完全控制布局,请使用Grid