2012-04-18 36 views
0

我有一个伸展问题,我的滚动查看器,我有一个文本框和一个停靠面板内的按钮以及我的scrollviewer,我希望这些项目下面的滚动查看器,但拉伸到停靠面板的宽度和高度从底部拉伸坞面板上的按钮和文本框。滚动查看器卡在Dockpanel的右侧?

所以我tryed这一点:

<UserControl x:Class="WpfApplication4.AppPages.FindStudent" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      mc:Ignorable="d" 
      d:DesignHeight="300" d:DesignWidth="300" Loaded="UserControl_Loaded"> 
    <DockPanel Height="299" Width="289"> 
     <TextBox Height="23" Name="textBox1" Width="188" VerticalAlignment="Top"/> 
     <Button Content="Button" Height="23" Name="button1" Width="100" Click="button1_Click" VerticalAlignment="Top" /> 
     <ScrollViewer VerticalScrollBarVisibility="Hidden" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Width="88"> 

然而滚动浏览器以某种方式粘在右手边,像这样:

enter image description here

回答

1

你需要告诉项目如何码头使用附加的属性DockPanel.Dock

事情是这样的:

<DockPanel> 
    <StackPanel DockPanel.Dock="Top" Orientation="Horizontal"> 
     <TextBox /> 
     <Button /> 
    <StackPanel> 
    <ScrollViewer DockPanel.Dock="Top" /> 
</DockPanel> 

注意,默认情况下DockPanel的最后一个孩子将填补剩余的可用空间。

+0

在DockPanel上,如果您不想让最后一个控件伸展以填充剩余空间,您可以设置LastChildFill =“False”。 – 2012-04-18 15:31:14

+0

嗨周杰伦那工作,谢谢。 – 2012-04-18 16:13:44

1

我会回应杰伊说的话,你需要指定你希望通过设置DockPanel.Dock将控件停靠在DockPanel内部。一些补充说明:

  • LastChildFill将控制的最后一个元素是否拉伸以填充剩余空间
  • 默认对接是向左
  • 其中控制上市会影响到他们是如何对接的顺序。

查看MSDN documentation heresimple tutorial here

+0

+1谢谢LastChildFill是一个很好的添加剂。 – 2012-04-18 16:14:38