2013-07-28 2 views
0

У меня есть страница, вот XAML. Подумайте, что в окне есть TabControl, я создаю страницу tab -> frame ->. Проблема в том, что две последние высоты DataGrids больше, чем высота страницы! Любая помощь appresiated! Благодарю.WPF DataGrid Высота больше, чем высота страниц

<Page x:Class="pObjectDesigner" 
     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" 
     xmlns:local="clr-namespace:STUDIO_MANAGER_FRAMEWORK" 
     mc:Ignorable="d" x:Name="pObjectDesigner" 
     d:DesignHeight="750" d:DesignWidth="1050" MinWidth="500" 
     Title="pObjectDesigner"> 
    <Grid x:Name="MainGrid"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="50"/> 
      <RowDefinition Height="*"/> 
     </Grid.RowDefinitions> 
     <local:ucMXMainToolBar Grid.Row="0" Allow_GoLeft="False" Allow_GoRight="False" x:Name="tlbToolBar" VerticalAlignment="Top" /> 

     <Grid Grid.Row="1"> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="250" MinWidth="180"/> 
       <ColumnDefinition Width="5"/> 
       <ColumnDefinition Width="*"/> 
      </Grid.ColumnDefinitions> 

      <TreeView x:Name="tlstObjects" 
         HorizontalContentAlignment="Stretch" 
         VerticalContentAlignment="Stretch"/> 

      <GridSplitter Grid.Column="1" HorizontalAlignment="Stretch"/> 

      <Grid Grid.Column="2"> 
       <Grid.RowDefinitions> 
        <RowDefinition Height="Auto"/> 
        <RowDefinition Height="5"/> 
        <RowDefinition Height="*"/> 
       </Grid.RowDefinitions> 

       <DataGrid Grid.Row="0" x:Name="grdPages" 
          AutoGenerateColumns="True" 
          ColumnWidth="Auto" 
          VerticalContentAlignment="Stretch" 
          HorizontalContentAlignment="Stretch" 
          CanUserReorderColumns="True" /> 

       <GridSplitter Grid.Row="1" HorizontalAlignment="Stretch"/> 

       <Grid Grid.Row="2"> 
        <Grid.ColumnDefinitions > 
         <ColumnDefinition Width="0.5*" MinWidth="150" /> 
         <ColumnDefinition Width="5"/> 
         <ColumnDefinition Width="0.5*" MinWidth="150"/> 
        </Grid.ColumnDefinitions> 

        <DataGrid Grid.Column="0" x:Name="grdDataGrids" 
          AutoGenerateColumns="True" 
          ColumnWidth="Auto" 
          VerticalContentAlignment="Stretch" 
          HorizontalContentAlignment="Stretch" 
          CanUserReorderColumns="True"/> 

        <GridSplitter Grid.Column="1" HorizontalAlignment="Stretch"/> 

        <DataGrid Grid.Column="2" x:Name="grdModules" 
          AutoGenerateColumns="True" 
          ColumnWidth="Auto" 
          VerticalContentAlignment="Stretch" 
          HorizontalContentAlignment="Stretch" 
          CanUserReorderColumns="True"/> 

       </Grid> 
      </Grid> 
     </Grid> 
    </Grid> 
</Page> 

Snapshot

ответ

0

Привет в DataGrid использовать AttachedProperty ScrollViewer.VerticalScrollBarVisibility Авто

<DataGrid **ScrollViewer.VerticalScrollBarVisibility="Auto"** 

Similarlly вы можете установить его для Horizontally .I надеюсь, что это поможет.

+0

Да, я читал об этом .. Но вертикальная полоса прокрутки до нижнего левого datagrid не видима .. Знаете почему? –

+0

Он не отображается внизу слева DataGrid, поскольку высота DataGrid меньше, чем область прокрутки. Если вы хотите всегда показать, что тогда установите ScrollViewer.VerticalScrollBarVisibility = "Visible". – Nitesh

+1

Он будет виден, если вы установите свойство ScrollViewer.VerticalScrollBarVisibility = «Авто». Или другой способ может заключить ваш datagrid в ScrollViewer – ethicallogics

Смежные вопросы