WPF Xaml-将图像向右对齐

WPF Xaml-将图像向右对齐,wpf,xaml,Wpf,Xaml,从xaml开始 我有以下资料: <StackPanel x:Name="Compare" Orientation="Horizontal"> <Label Content="Path to Access DB:" HorizontalAlignment="Left" Margi

从xaml开始

我有以下资料:

<StackPanel x:Name="Compare"
                            Orientation="Horizontal">
                    <Label Content="Path to Access DB:"
                           HorizontalAlignment="Left"
                           Margin="3"
                           Width="120"
                           VerticalAlignment="Center" />
                    <TextBox x:Name="txtPathToAccess"
                             HorizontalAlignment="Left"
                             Height="23"
                             Margin="3"
                             Text="{Binding PathToAccessDb}"
                             VerticalAlignment="Center"
                             Width="800" />
                    <Button x:Name="btnFileSearch"
                            Content="..."
                            Width="20"
                            Height="20"
                            Command="{Binding AccessFileSearchCommand}" />
                    <Button x:Name="btnComparePiToAccess"
                            Margin="10,0,0,0"
                            Content="Compare Pi to Access"
                            Width="150"
                            Height="20"
                            Command="{Binding CompareCommandPiToAccess}" />
                    <Image Source="/Images/drax_logo.jpg" 
                           Width="100" />
                </StackPanel>


如何使图像与堆栈面板的右边缘对齐?我希望标签和按钮位于屏幕(行)左侧,图像位于右侧。

使用stackpanel无法完成此操作。相反,创建一个包含两列的网格,将图像放在第二列,并将
水平对齐设置为右侧

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"></ColumnDefinition>
        <ColumnDefinition></ColumnDefinition>
    </Grid.ColumnDefinitions>

    <StackPanel Grid.Column="0" x:Name="Compare"
                        Orientation="Horizontal">
        <Label Content="Path to Access DB:"
                       HorizontalAlignment="Left"
                       Margin="3"
                       Width="120"
                       VerticalAlignment="Center" />
        <TextBox x:Name="txtPathToAccess"
                         HorizontalAlignment="Left"
                         Height="23"
                         Margin="3"
                         Text="{Binding PathToAccessDb}"
                         VerticalAlignment="Center"
                         Width="800" />
        <Button x:Name="btnFileSearch"
                        Content="..."
                        Width="20"
                        Height="20"
                        Command="{Binding AccessFileSearchCommand}" />
        <Button x:Name="btnComparePiToAccess"
                        Margin="10,0,0,0"
                        Content="Compare Pi to Access"
                        Width="150"
                        Height="20"
                        Command="{Binding CompareCommandPiToAccess}" />

    </StackPanel>

    <Image Grid.Column="1" 
           HorizontalAlignment="Right"
           Source="/Images/drax_logo.jpg" 
           Width="100" />
</Grid>


希望这有帮助。

使用stackpanel无法做到这一点。相反,创建一个包含两列的网格,将图像放在第二列,并将
水平对齐设置为右侧

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"></ColumnDefinition>
        <ColumnDefinition></ColumnDefinition>
    </Grid.ColumnDefinitions>

    <StackPanel Grid.Column="0" x:Name="Compare"
                        Orientation="Horizontal">
        <Label Content="Path to Access DB:"
                       HorizontalAlignment="Left"
                       Margin="3"
                       Width="120"
                       VerticalAlignment="Center" />
        <TextBox x:Name="txtPathToAccess"
                         HorizontalAlignment="Left"
                         Height="23"
                         Margin="3"
                         Text="{Binding PathToAccessDb}"
                         VerticalAlignment="Center"
                         Width="800" />
        <Button x:Name="btnFileSearch"
                        Content="..."
                        Width="20"
                        Height="20"
                        Command="{Binding AccessFileSearchCommand}" />
        <Button x:Name="btnComparePiToAccess"
                        Margin="10,0,0,0"
                        Content="Compare Pi to Access"
                        Width="150"
                        Height="20"
                        Command="{Binding CompareCommandPiToAccess}" />

    </StackPanel>

    <Image Grid.Column="1" 
           HorizontalAlignment="Right"
           Source="/Images/drax_logo.jpg" 
           Width="100" />
</Grid>


希望这能有所帮助。

StackPanel
使其中的所有元素使用尽可能少的空间。如果要填充到面板的最大边缘,可以使用
DockPanel
,它可以选择某个元素将停靠的位置,或者使用具有固定列和行的
Grid
StackPanel
使其中的所有元素使用尽可能小的空间。如果要填充到面板的最大边缘,可以使用
DockPanel
,它可以选择某个元素将停靠的位置,或者使用具有固定列和行的
Grid
。实际上不需要两列。水平对齐也适用于单个柱。Yeap。这只是方法之一。当然,这也可以使用dockpanel来完成,实际上不需要两列。水平对齐也适用于单个柱。Yeap。这只是方法之一。当然,这也可以使用dockpanel来完成。