2014-09-16 5 views
0

나는 silverligth 5에서 그리드에 3 개의 행이있는 상황에서 작업하고 있습니다. frst에 일부 텍스트가 있고 두 번째 부분에 Scrollviewer가 있고 세 번째 부분에는 버튼이 있습니다.이 경우 Grid의 종횡비를 유지하는 방법은 무엇입니까?

격자를 크기를 조정할 때 (행을 3으로 만들 때) 그리드 크기를 조정할 때 (행 3에서) 버튼을 계속 눌러야하지만 scrollviewer (row2) 내부의 데이터가 작아 질 수 있습니다 (scrollviewer로 더 자세히 볼 수 있음) 첫 번째 행의 UIelement는 버튼처럼 지속되어야합니다.

<Grid x:Name="LayoutRoot" Background="{StaticResource BGBrush_1}"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
    </Grid.RowDefinitions> 



    <TextBlock Grid.Row="0" Text="EOD" FontWeight="Bold" Foreground="Orange" Margin="10" VerticalAlignment="Center" /> 

    <ScrollViewer x:Name="panelScrollViewer" Grid.Row="1" VerticalScrollBarVisibility="Hidden" Height="600"> 
     <telerik:RadTreeView Name="RadTreeViewObj" VerticalAlignment="Center" Margin="50" Background="{StaticResource BGBrush_1}" BorderBrush="{StaticResource BGBrush_1}" ItemsSource="{Binding EODDataStepsCollection}" SelectionMode="Single" ItemContainerStyle="{StaticResource TreeViewItemStyle}"> 
      <telerik:RadTreeView.ItemTemplate> 
       <telerik:HierarchicalDataTemplate ItemsSource="{Binding RelatedItems}"> 
        // here are some UI elements 
       </telerik:HierarchicalDataTemplate> 
      </telerik:RadTreeView.ItemTemplate> 
     </telerik:RadTreeView> 
    </ScrollViewer> 

    <Grid Grid.Row="2"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="*" /> 
      <ColumnDefinition Width="Auto" /> 
     </Grid.ColumnDefinitions> 
     <Button Grid.Column="0" x:Name="CancelButton" Content="Cancel" FontWeight="Bold" Command="{Binding ButtonCancelCommand}" Height="23" HorizontalAlignment="Left" Margin="30,10,10,10" Style="{StaticResource ButtonStyle_Blue}" VerticalAlignment="Bottom" Width="80" Visibility="{Binding IsValidateVisible, Converter={StaticResource BooleanToVisibilityConverter}}" /> 
     <Button Grid.Column="1" x:Name="ValidateButton" Content="Validate" FontWeight="Bold" Command="{Binding ButtonValidateCommand}" Height="23" HorizontalAlignment="Right" Margin="10,10,30,10" Style="{StaticResource ButtonStyle_Blue}" VerticalAlignment="Bottom" Width="80" Visibility="{Binding IsValidateVisible, Converter={StaticResource BooleanToVisibilityConverter}}" /> 
    </Grid> 
</Grid> 

방법이을 달성하기 : 여기

의 코드 내 시도인가?

두 번째 버튼이 숨겨져 있는지 확인하십시오. (절반 밖에 볼 수 없음). 어떻게 해결할 수 있을까요?

답변

2
이에 rowdefinitions 변경

:

<RowDefinition Height="Auto" /> 
<RowDefinition Height="*" /> 
<RowDefinition Height="Auto" /> 

그리고에서 ScrollViewer에서 고정 Height를 제거합니다.

중간 행이 나머지 공간을 차지하는 반면 첫 번째 행과 마지막 행은 가능한 작습니다.

는이처럼 그들을 배치 할 수 있습니다 겹치는 버튼을 방지하려면 :

<StackPanel Grid.Row="2" HorizontalAlignment="Right" Orientation="Horizontal"> 
     <Button x:Name="ValidateButton" Content="Validate" FontWeight="Bold" Margin="10,10,30,10" VerticalAlignment="Bottom" Width="80"/> 
     <Button x:Name="CancelButton" Content="Cancel" FontWeight="Bold" Margin="30,10,10,10" VerticalAlignment="Bottom" Width="80" /> 
</StackPanel> 

참고 :이 취소 버튼을 마우스 오른쪽 버튼으로 정렬됩니다. (나는 또한 Validate 버튼의 오른쪽에 두었습니다)

+0

고마워요. 하지만 너비가 줄어들고 폭이 약간 줄어든 후에 높이로 작동합니다. – user3085082

+0

@ user3085082 : 버튼이 숨기는 것은 무엇을 의미합니까? 수축이 허용되면 다른 하나와 겹칠 것입니다. 그게 다야? –

+0

@Troesls 편집 된 질문의 스냅 샷을 참조하십시오. – user3085082

관련 문제