2014-12-17 1 views
0

: 2의 비율 :XAML에서이 설정되면 programaticaly 격자 요소의 폭을 수정하는 방법 * I는 다음과 같이 구분 두 열을 정의

<Grid.ColumnDefinitions> 
     <ColumnDefinition Width="1*"/> 
     <ColumnDefinition Width="6"/> 
     <ColumnDefinition Width="2*"/> 
    </Grid.ColumnDefinitions> 

    <ScrollViewer Name="sideBar" Margin="{StaticResource SplitLeft}" SizeChanged="ScrollViewer_SizeChanged"> 
     <StackPanel> 
      <TextBlock Text="LEFT CONTENT" Style="{StaticResource Heading2}" /> 
      <TextBlock Text="" Name="ShowThings"/> 
     </StackPanel> 
    </ScrollViewer> 
    <GridSplitter Grid.Column="1" /> 
    <ScrollViewer Name="ListPage" Grid.Column="2 " Margin="{StaticResource SplitRight}" SizeChanged="ScrollViewer_SizeChanged"> 
     <StackPanel> 
      <TextBlock Text="RIGHT CONTENT" Style="{StaticResource Heading2}" /> 
      <TextBlock Text="Content goes here" /> 
     </StackPanel> 
    </ScrollViewer> 

그래서 페이지가 1로 분할된다. 하지만 사용자가 크기를 조정하려는 경우 가능합니다. 다음 출시를 위해 앱 설정에서 수정 된 너비를 유지하고 싶습니다. 크기 변경 이벤트 내가 설정에서 새 너비를 저장하고에

,
Properties.Settings.Default[((ScrollViewer)sender).Name + "Width"] = e.NewSize.Width; 
    Properties.Settings.Default.Save(); 

창 생성자 설정을로드하고 값을 설정하는

.

sideBar.Width = (double)Properties.Settings.Default["sideBarWidth"]; 

그러나 이것은 작동하지 않습니다. 아무도 내가 문제를 식별하는 데 도움이 될 수 있습니까? 나는 이것이 중복 질문이라고 확신하지만 무엇을 검색해야할지 모르겠다.

답변

1

Grid.ColumnDefinitions에 주어진 크기에 따라 다르면 sideBarWidth을 설정하는 것이 의미가 없습니다. ColumnDefinition.Width :

// 0 = first column 
grid.ColumnDefinitions[0].Width = new GridLength((double)Properties.Settings.Default["sideBarWidth"]); 
+0

답장을 보내 주셔서 감사합니다. 그것은 의미가 있습니다. 그러나 질문을 따르십시오. grid.ColumnDefinitions [0] .Width는 System.window.GridLength 유형입니다. 두 배 너비를 변환하는 방법.이 픽셀은 GridLength라고 생각합니다. – user2368812

+0

확인. GridLength를 사용하여 알아 냈습니다. 감사. 허용 된 답변으로 표시됩니다. – user2368812

+0

당신이 옳습니다. 감사. –

관련 문제