3

在我的 WPF 应用程序中,我创建了一个带有方向=水平的堆栈面板的停靠面板。

我在我的堆栈面板上添加了一些按钮(如工具栏)

我希望能够将我的堆栈面板上的最后一项设置为附加到我的窗口右侧。

一些图片以便解释。

我有的 :

在此处输入图像描述

我会拥有什么:

在此处输入图像描述

这是我的 XAML:

<DockPanel  Height="40" VerticalAlignment="Top" >
    <Border>

        <StackPanel Orientation="Horizontal" Background="{StaticResource DegradeCouleurTheme}">

            <Image  Source="ElipseGauche.png" Height="28" Margin="10,0,0,0" />

            <StackPanel  Orientation="Horizontal" Height="28">

                <StackPanel.Background>
                    <ImageBrush ImageSource="ElipseMilieu.png"></ImageBrush>
                </StackPanel.Background>

                <Button Template="{StaticResource BoutonRessourcesTpl}" Click="Button_Click_Goto_Premier">
                    <Image Source= "xRtDiva_XWPF_TBR_PREMIER.PNG_IMAGES.png" Height="16"/>
                </Button>

                <Button Template="{StaticResource BoutonRessourcesTpl}" Click="Button_Click_Goto_Precedent">
                    <Image Source= "xRtDiva_XWPF_TBR_PRECED.PNG_IMAGES.png" Height="16"/>
                </Button>

                <Button Template="{StaticResource BoutonRessourcesTpl}" Click="Button_Click_Goto_Suivant">
                    <Image Source= "xRtDiva_XWPF_TBR_SUIVANT.PNG_IMAGES.png" Height="16"/>
                </Button>

                <Button Template="{StaticResource BoutonRessourcesTpl}" Click="Button_Click_Goto_Dernier">
                    <Image Source= "xRtDiva_XWPF_TBR_DERNIER.PNG_IMAGES.png" Height="16"/>
                </Button>

            </StackPanel>

            <Image  Source="ElipseDroite.png" Height="28" Margin="0,0,0,0" />


            <Image  Source="ElipseGauche.png" Height="28" Margin="15,0,0,0" />

            <StackPanel  Orientation="Horizontal" Height="28">

                <StackPanel.Background>
                    <ImageBrush ImageSource="ElipseMilieu.png"></ImageBrush>
                </StackPanel.Background>

                <Button Template="{StaticResource BoutonRessourcesTpl}" Click="Button_Click_Creer" >
                    <Image Source= "Toolbar_Creer.png" Height="16" />
                </Button>

            </StackPanel>

            <Image  Source="ElipseDroite.png" Height="28" Margin="0,0,0,0" />

            <Image  Source="ElipseGauche.png" Height="28" Margin="15,0,0,0" />


            <StackPanel  Orientation="Horizontal" Height="28">

                <StackPanel.Background>
                    <ImageBrush ImageSource="ElipseMilieu.png"></ImageBrush>
                </StackPanel.Background>

                <Button Template="{StaticResource BoutonRessourcesTpl}" Click="Button_Click_Evenement_Supprimer">
                    <Image Source= "Toolbar_Supprimer.png" Height="16"/>
                </Button>

            </StackPanel>

            <Image  Source="ElipseDroite.png" Height="28" Margin="0,0,0,0" />

            <Image  Source="ElipseGauche.png" Height="28" Margin="15,0,0,0" />


            <StackPanel  Orientation="Horizontal" Height="28">

                <StackPanel.Background>
                    <ImageBrush ImageSource="ElipseMilieu.png"></ImageBrush>
                </StackPanel.Background>

                <Button Template="{StaticResource BoutonRessourcesTpl}" Click="Button_Click_Evenement_Joints">
                    <Image Source= "Toolbar_FicJoints.png" Height="18"/>
                </Button>

            </StackPanel>

            <Image  Source="ElipseDroite.png" Height="28" Margin="0,0,0,0" />

            <Image  Source="ElipseGauche.png" Height="28" Margin="15,0,0,0" />


            <StackPanel  Orientation="Horizontal" Height="28">

                <StackPanel.Background>
                    <ImageBrush ImageSource="ElipseMilieu.png"></ImageBrush>
                </StackPanel.Background>

                <Button Template="{StaticResource BoutonRessourcesTpl}" Click="Button_Click_Evenement_Annuler" >
                    <Image Source= "Toolbar_Annuler.png" Height="16"/>
                </Button>

                <Button Template="{StaticResource BoutonRessourcesTpl}" Click="Button_Click_Evenement_Valider">
                    <Image Source= "Toolbar_Valider.png" Height="16"/>
                </Button>

            </StackPanel>

            <Image  Source="ElipseDroite.png" Height="28" Margin="0,0,0,0" />



            <Image  Source="ElipseGauche.png" Height="28" Margin="15,0,0,0" />


            <StackPanel  Orientation="Horizontal" Height="28">

                <StackPanel.Background>
                    <ImageBrush ImageSource="ElipseMilieu.png"></ImageBrush>
                </StackPanel.Background>

                <Button Template="{StaticResource BoutonRessourcesTpl}" Click="Button_Click_App_Parametrer" >
                    <Image Source= "Toolbar_Parametrer.png" Height="16"/>
                </Button>

            </StackPanel>

            <Image  Source="ElipseDroite.png" Height="28" Margin="0,0,0,0" />

            <Grid HorizontalAlignment="Right">
                <StackPanel Orientation="Horizontal" Height="28" >
                    <Image  Source="ElipseGauche.png" Height="28" Margin="15,0,0,0" />


                    <StackPanel  Orientation="Horizontal" Height="28">

                        <StackPanel.Background>
                            <ImageBrush ImageSource="ElipseMilieu.png"></ImageBrush>
                        </StackPanel.Background>

                        <Button Template="{StaticResource BoutonRessourcesTpl}" Click="Button_Click_About" >
                            <Label Margin="0,0,0,1" Foreground="White" Content="About" Height="16"  VerticalAlignment="Center" HorizontalAlignment="Center" Padding="0,0,0,0"/>
                        </Button>

                    </StackPanel>

                    <Image  Source="ElipseDroite.png" Height="28" Margin="0,0,0,0" />
                </StackPanel>
            </Grid>


        </StackPanel>

    </Border>
</DockPanel>

我尝试在我的堆栈面板的最后一项上使用带有 Horizo​​ntalaligneemnt = right 的网格,但它没有效果(这是逻辑!)

任何人都可以帮助我吗?

非常感谢 :)

4

3 回答 3

2

您不能使用堆栈面板执行此操作。您将需要使用 Grid 代替。

于 2013-05-01T13:46:53.687 回答
0

您可以使用 Grid 和 Grid 子项在以下方向上攻击 Objecs:Left、Right、Tip、Bottom 和 Center。

我做了一个例子,在左下角和右下角有两个图像:

<Window x:Class="NameClass">

    <Grid Name="Grid 1">  

        <Grid Name="Grid 1.1" VerticalAlignment="Bottom">

            <Grid Name="Grid 1.1.1" HorizontalAlignment="Left">
                <StackPanel>
                    <StackPanel Orientation="Horizontal">
                        <Image HorizontalAlignment="Left" Source="/left.jpg"/>                        
                    </StackPanel>
                </StackPanel>
            </Grid>

            <Grid Name="Grid 1.1.2" HorizontalAlignment="Right">
                <StackPanel>
                    <StackPanel Orientation="Horizontal">                        
                        <Image HorizontalAlignment="Right" Source="/right.jpg"/>
                    </StackPanel>
                </StackPanel>
            </Grid>     

        </Grid>

    </Grid>  

</Window>

结构说明:

  • 网格 1是主网格。
  • 网格 1.1到所需的主地址,在本例中为底部。
  • Grid 1.1.1Grid 1.1.2包含每个<Image>. 在这种情况下,使用 StackPanel。
    • <StackPanel/>是填充Grid 1.1.x的主要容器。
    • <StackPanel Orientation="Horizontal"/>只使用一行
    • <Image HorizontalAlignment={one direction}/>定位在底部网格上,可以在右侧、左侧或中心。

结果:

在此处输入图像描述

PD:我使用这个视频来了解 XAML WPF 的概念。堆叠面板和码头面板。我找到了一个解决方案,反复试验。

于 2019-02-03T20:55:30.597 回答
-1

您可以通过在 StackPanel Orientation="Horizo​​ntal" 中使用来执行此操作

于 2015-06-01T10:02:00.317 回答