为什么赢了';t StackPanel在Silverlight中将文本块放在左侧,按钮放在右侧?

为什么赢了';t StackPanel在Silverlight中将文本块放在左侧,按钮放在右侧?,silverlight,xaml,stackpanel,Silverlight,Xaml,Stackpanel,好的,我放弃了:我需要对下面的StackPanel做些什么更改,以便它将: 表格最左边的文本 窗体最右侧的按钮 答复: 已下载,其中包含DockPanel、已安装、引用System.Windows.Controls,然后是以下XAML: <UserControl x:Class="TestData333.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmln

好的,我放弃了:我需要对下面的StackPanel做些什么更改,以便它将:

  • 表格最左边的文本
  • 窗体最右侧的按钮


答复: 已下载,其中包含DockPanel、已安装、引用System.Windows.Controls,然后是以下XAML:

<UserControl x:Class="TestData333.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:toolkit="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"
    Width="400" Height="300">
    <Grid x:Name="LayoutRoot" Background="White">
        <Border CornerRadius="10" Background="Yellow" Padding="20">
            <StackPanel VerticalAlignment="Top" HorizontalAlignment="Left">
                <ScrollViewer Background="Beige" 
                              Height="230"
                              Width="360">
                    <StackPanel>
                        <TextBlock x:Name="TheContent" 
                           Foreground="Navy"
                           FontSize="14"
                           TextWrapping="Wrap"/>
                    </StackPanel>
                </ScrollViewer>

                <toolkit:DockPanel Margin="0 5 0 0">
                    <TextBlock toolkit:DockPanel.Dock="Left" x:Name="ProgressIndicator" Text="Ready..."
                               FontSize="12"
                               HorizontalAlignment="Left"/>
                    <Button toolkit:DockPanel.Dock="Right" Content="Load Data"
                        Width="100"
                        HorizontalAlignment="Right"
                        Click="Button_Load"/>
                </toolkit:DockPanel>

            </StackPanel>
        </Border>
    </Grid>
</UserControl>


您的意思是希望按钮与表单右侧对齐吗?如果是这样,StackPanel不会这么做。它可以水平或垂直地“堆叠”

我建议你试试:



我认为马特的方法是最好的。不过,有两种选择是使用网格并将内容左右对齐,或者只给按钮留出很大的空白。

您可以使用toolkit中的dockpanel,也可以使用带有两列的网格。并使第二列的内容右对齐

参考应为:

xmlns:toolkit="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Toolkit"

是的,我在WPF中就是这样做的,但是我现在正在使用Silverlight,尽管Silverlight 3,很抱歉在这个版本中没有dockpanel,正在寻找一些解决方法…我很确定Silverlight控件工具包有dockpanelSilverlight没有dockpanel?我必须更加注意问题的标签。我自动地认为这是一个WPF问题,但我不知道Silverlight中没有DockPanel!
<DockPanel>
    <TextBlock x:Name="ProgressIndicator" 
               DockPanel.Dock="Left"
               Text="Ready..." />
    <Button DockPanel.Dock="Right"
            Content="Load Data"
            Width="100"
            Click="Button_Load"
            Margin="0,5,0,0" />
</DockPanel>
xmlns:toolkit="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Toolkit"