将面板中的子控件的大小限制为可见区域

时间:2011-11-01 15:30:30

标签: wpf infragistics stackpanel dockpanel

在限制孩子内容方面,我似乎永远无法理解DockPanel,StackPanel和Grid之间的差异。这个XAML:

   <DockPanel>
        <Menu/>
        <ToolBarTray/>
        <ScrollViewer>
        <Grid>
          <Grid.RowDefinitions>
              <RowDefinition/>
              <RowDefinition/>
          </Grid.RowDefinitions>
        <TabControl>
         <TabItem Header="Data" Name="tabData">
                <DockPanel>
                    <Border Name="extraDataBorder" DockPanel.Dock="Top"
                            Style="{StaticResource ConsistentBorder}" Margin="10">                                    
                    </Border>
                    <igDP:XamDataGrid Grid.Row="1"                                                                      
                            Margin="10,10,10,0"                                                                             
                            ScrollViewer.HorizontalScrollBarVisibility="Visible"
                            ScrollViewer.VerticalScrollBarVisibility="Visible"  >                       

                    </igDP:XamDataGrid>
                </DockPanel>
            </TabItem>
        </TabControl>
         </Grid>                                                                                             

      </ScrollViewer>

    </DockPanel>

生成一个不受屏幕可见区域限制的网格,如下图所示:

Overflowing grid

我不希望网格超出屏幕的可见区域。相反,我希望它被剪裁,以便用户可以看到水平滚动条而不必向下滚动以查看水平滚动条。我尝试使用Stack和DockPanel代替网格,但获得完全相同的效果。我该如何解决这个问题?

TIA。

修改 我正在编辑原始XAML以包含导致此问题的其他元素。

1 个答案:

答案 0 :(得分:1)

您可以将其绑定到其父级的宽度和高度,作为众多解决方案之一。