2011-04-26 65 views
3

这(有希望)是一个简单的...我试图找到一个WPF面板,我可以使用它时,调整大小保持所有的垂直对齐的儿童(按钮)偏离面板的底部边缘相同的距离,所以看起来他们正在扩大。什么WPF面板控件使用锚点儿童边缘(六角琴效果)?

显而易见的是使用一个停靠面板和底部的锚点,但这似乎并不奏效。让更多的2个孩子在那里弄乱队列和我做的任何事情,我不能让他们垂直排队。我尝试了各种面板,但没有喜悦。我假设它非常简单,但它难倒了我!

基本上我试图得到一个手风琴效果,当我点击面板扩展的顶部按钮并显示所有的子按钮。当我再次点击顶部按钮时,它会崩溃。我想我可以用故事板移动每个孩子,但我必须认为我所有的故事需要做的是改变面板的尺寸,并让孩子们保持他们的偏移量和六角琴出...

任何想法?

在此先感谢!

回答

1

我相信你实际上可以使用Canvas并设置控件的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> 

enter image description here

而且网格可以做类似:

<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> 
1

如果“基本上我试图让手风琴效应”是你的问题的本质(我说得对不对?)那么,你是否尝试过使用内置的WPF扩展器?在我看来,你正在试图建立自己的...

0

我不完全明白你的意思是由六角琴效应,它可能与伸展以及。如果你想锚定你可以使用Grid:

<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>