【问题标题】:scroll viewer stuck to the right side of dockpanel?滚动查看器粘在停靠面板的右侧?
【发布时间】:2012-04-18 23:38:25
【问题描述】:

我的滚动查看器有拉伸问题,我在停靠面板内有一个文本框和按钮以及我的滚动查看器,我想要这些项目下方的滚动查看器,但拉伸到停靠面板的宽度,高度从停靠面板的底部直到按钮和文本框。

所以我尝试了这个:

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

但是滚动查看器不知何故粘在右侧,如下所示:

【问题讨论】:

    标签: wpf xaml docking


    【解决方案1】:

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

    类似这样的:

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

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

    【讨论】:

    • 如果您不希望最后一个控件拉伸以填充剩余空间,则可以在 DockPanel 上设置 LastChildFill = "False"。
    【解决方案2】:

    我会回应 Jay 所说的话,您需要通过设置 DockPanel.Dock 来指定您希望控件如何停靠在 DockPanel 内。一些附加说明:

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

    请参阅 MSDN documentation heresimple tutorial here

    【讨论】:

      猜你喜欢
      • 2015-01-21
      • 1970-01-01
      • 1970-01-01
      • 2011-05-30
      • 2021-01-21
      • 1970-01-01
      • 1970-01-01
      • 2019-05-15
      • 1970-01-01
      相关资源
      最近更新 更多