滚动查看器粘在dockpanel的右侧?

时间:2012-04-18 15:20:11

标签: wpf xaml docking

我的滚动查看器出现了拉伸问题,我在停靠面板中有一个文本框和按钮以及我的滚动查看器,我希望滚动查看器位于这些项目下方,但是拉伸到停靠面板的宽度并且高度从停靠面板的底部,直到按钮和文本框。

所以我尝试了这个:

<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

2 个答案:

答案 0 :(得分:1)

您需要使用附加属性DockPanel.Dock告诉项目如何停靠。

这样的事情:

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

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

答案 1 :(得分:1)

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

  • LastChildFill将控制最后一个元素是否伸展以填充剩余空间
  • 默认停靠位于左侧
  • 列出控件的顺序将影响它们的停靠方式。

请参阅MSDN documentation heresimple tutorial here