Ответ 1
вы можете использовать док-панель из инструментария или использовать сетку с двумя столбцами. и содержимое второго столбца выравнивается вправо
Хорошо, я сдаюсь: что мне нужно изменить на этот StackPanel ниже, чтобы он помещал:
alt text http://tanguay.info/web/external/stackPanelLeftRight.png
<UserControl x:Class="TestData333.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
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>
<StackPanel Orientation="Horizontal">
<TextBlock x:Name="ProgressIndicator" Text="Ready..."
HorizontalAlignment="Left"/>
<Button Content="Load Data"
Width="100"
HorizontalAlignment="Right"
Click="Button_Load"
Margin="0 5 0 0"/>
</StackPanel>
</StackPanel>
</Border>
</Grid>
</UserControl>
Скачан Silverlight 3 toolkit, в котором установлен 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>
alt text http://tanguay.info/web/external/silverlightDockPanel.png
вы можете использовать док-панель из инструментария или использовать сетку с двумя столбцами. и содержимое второго столбца выравнивается вправо
Вы хотите, чтобы кнопка была выровнена справа от формы? Если это так, StackPanel этого не сделает. Это сделало так, чтобы "складывать вещи вверх" горизонтально или вертикально.
Я предлагаю вам попробовать 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"