要使用哪个WPF面板控件将子对象锚定到边缘(协奏曲效果)?

要使用哪个WPF面板控件将子对象锚定到边缘(协奏曲效果)?,wpf,controls,expression-blend,anchor,storyboard,Wpf,Controls,Expression Blend,Anchor,Storyboard,这(希望)是一个简单的。。。我试图找到一个WPF面板,我可以使用它,当调整大小时,它的所有垂直对齐的子项(按钮)从面板的底部边缘偏移相同的距离,所以看起来它们正在扩展 最明显的一种方法是使用船坞面板并将锚固定在底部,但这似乎不起作用。在那里放两个以上的孩子会弄乱排列,无论我做什么,我都无法让他们垂直排列。我试过各种各样的面板,但都没有乐趣。我想这很简单,但这让我很难堪 基本上,当我点击顶部的按钮时,面板会展开并显示所有的子按钮,我试图得到一个手风琴的效果。当我再次单击顶部按钮时,它会折叠。我想我

这(希望)是一个简单的。。。我试图找到一个WPF面板,我可以使用它,当调整大小时,它的所有垂直对齐的子项(按钮)从面板的底部边缘偏移相同的距离,所以看起来它们正在扩展

最明显的一种方法是使用船坞面板并将锚固定在底部,但这似乎不起作用。在那里放两个以上的孩子会弄乱排列,无论我做什么,我都无法让他们垂直排列。我试过各种各样的面板,但都没有乐趣。我想这很简单,但这让我很难堪

基本上,当我点击顶部的按钮时,面板会展开并显示所有的子按钮,我试图得到一个手风琴的效果。当我再次单击顶部按钮时,它会折叠。我想我可以用故事板移动每个孩子,但我必须认为我的故事需要做的就是改变面板的大小,孩子们保持他们的偏移量和协奏曲出来

有什么想法吗


提前谢谢

我相信您实际上可以使用画布并设置控件的Canvas.Top、Left、Right和Bottom属性,以获得与WinForms和anchor相同的效果

<Canvas>
    <Button Canvas.Left="30" Canvas.Bottom="10" Content="Button 1"  Name="button1"  />
    <Button Canvas.Left="90" Canvas.Bottom="10" Content="Button 2"  Name="button2"  />
</Canvas>

网格也可以执行类似的操作:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="*" />
        <RowDefinition Height="40" />
    </Grid.RowDefinitions>
    <Button Grid.Row="1" Grid.Column="0" Content="Button 1"  Name="button1" Margin="5" />
    <Button Grid.Row="1" Grid.Column="1" Content="Button 2"  Name="button2" Margin="5" />
</Grid>

如果“基本上我正在尝试获得一个协奏曲效果”是你问题的核心(我说的对吗?),那么,你是否尝试使用内置的WPF扩展器?在我看来,你正在努力建立你自己的…

我不太明白你所说的协奏曲效应,它可能也与拉伸有关。如果要锚定,可以使用轴网:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition /> <!-- Gets all available space i.e. resizes with window -->
        <RowDefinition Height="Auto"/> <!-- Sizes to content, always stays at the bottom -->
    </Grid.RowDefinitions>
    <!-- Resizable content goes in Grid.Row="0" -->
    <StackPanel Grid.Row="1" Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Right" Margin="5">
        <Button Name="ButtonOK" HorizontalAlignment="Right" Width="100" Margin="5" Click="ButtonOK_Click" IsDefault="True">OK</Button>
        <Button Name="ButtonCancel" HorizontalAlignment="Right" Width="100" Margin="5" Click="ButtonCancel_Click" IsCancel="True">Cancel</Button>
    </StackPanel>
</Grid>

好啊
取消