2016-06-03 2 views
1

WPF에서 ScrollViewer에 문제가 있습니다.WPF 관련 문제 ScrollViewer resize

ScrollViewer가 인계를 시작해야하는 지점까지 창 크기가 조정되면 창이 모눈의 크기를 조정하지 않고 스크롤 막대의 아래쪽이 화면 밖으로 사라집니다.

높이를 포함하는 격자의 높이에 바인딩을 시도했지만 행운이 없습니다.

<Grid x:Name="MainGrid" Width="Auto" Height ="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> 
    <StackPanel Height="134" Width="Auto" VerticalAlignment="Top" Background="Blue" HorizontalAlignment="Stretch"> 
     <Label x:Name="ProjectNumberLabel" Content="ProjectNumber" HorizontalAlignment="Left" Height="45.5" VerticalAlignment="Top" Width="350" FontSize="32" Margin="10,0,0,0" Foreground="White"/> 

     <Label x:Name="ProjectNameLabel" Content="ProjectName" HorizontalAlignment="Stretch" Height="42" VerticalAlignment="Top" FontSize="24" Margin="10,0,0,0" Foreground="White" Width="auto"/> 

     <Label x:Name="SetLabel" Content="Set Id" HorizontalAlignment="Stretch" Width="Auto" Height="42" Margin="10,0,10,0" FontSize="24" VerticalAlignment="Top" Foreground="White" /> 

    </StackPanel> 

    <ScrollViewer HorizontalAlignment="Stretch" Margin="0,140,0,0" Width="Auto" CanContentScroll="True" Height="{Binding ElementName=MainGrid, Path=ActualHeight }"> 
     <StackPanel Name="ContainingPanel" VerticalAlignment="Top" HorizontalAlignment="Stretch" Width="Auto" Height="Auto"> 
      <StackPanel HorizontalAlignment="Stretch" Width="Auto" Height="300"/> 

      <StackPanel HorizontalAlignment="Stretch" Height="38" VerticalAlignment="Bottom"> 
       <CheckBox x:Name="ComplexDataCheckBox" Content="Show All Data" Click="ComplexDataCheckBox_Click" RenderTransformOrigin="1.751,0.547" Margin="0,4,0,0" Height="16" HorizontalAlignment="Right" Width="105" VerticalAlignment="Bottom"> 
        <CheckBox.LayoutTransform> 
         <ScaleTransform ScaleX="2" ScaleY="2" /> 
        </CheckBox.LayoutTransform> 
       </CheckBox> 
      </StackPanel> 

      <StackPanel HorizontalAlignment="Stretch"> 
         <syncfusion:SfDataGrid HorizontalAlignment="Stretch" Width="Auto" VerticalAlignment="Stretch" x:Name="SpecimenGrid" AutoGenerateColumns="True" RowStyleSelector="{StaticResource styleselector}"/> 
      </StackPanel> 

     </StackPanel> 
    </ScrollViewer> 
</Grid> 
+0

는, 외부 그리드는'DockPanel' 충분한 켜고 수분 것, 쓸모가 없다. 다른 컨트롤을 그리드에 배치하려면'ColumnDefinitions'와'RowDefinitions'을 정의해야합니다. 'ScrollViewer'에 대해서는 height를 정의하지 않고 stretch하기 위해'VerticalAlignement'를 정의합니다. 내용이 더 이상 적합하지 않으면 스크롤바가 나타납니다 – Sidewinder94

답변

4

에서 ScrollViewer 그리드 높이 제로 수직하지 마진에 해당하는 높이가있는 경우, 그것은 그리드 경계를 간다 :

여기 내 XAML입니다.

는 두 개의 분리 된 그리드 행에 StackPanel을하고있는 ScrollViewer를 넣어 더

: 당신이 당신의 구성 요소를 배치하고 어떻게 보면

<Grid x:Name="MainGrid"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="140"/> 
     <RowDefinition Height="*"/> 
    </Grid.RowDefinitions> 

    <StackPanel Grid.Row="0"> 
     <!--Content--> 
    </StackPanel> 

    <ScrollViewer Grid.Row="1" 
        HorizontalAlignment="Stretch" 
        Margin="0" 
        CanContentScroll="True" > 
     <!--Content--> 
    </ScrollViewer> 
</Grid> 
+0

제안한 것을 시도해 보았습니다. ScrollViewer 높이가 콘텐츠가 무엇이든지 일치하고 싶어하고 컨테이너 격자 행이 일치하지 않기를 원합니다. – laxin204

+0

이 전체를 신경 쓰지 마십시오. 일들이 다른 StackPanel 안에 포함되어 있었고 Grid로 변경되었습니다. 이제 문제가 해결되었습니다. 당신의 도움을 주셔서 대단히 감사합니다 – laxin204