2012-10-01 3 views
0

구조가 다른 비 피벗 피벗 항목이있는 피벗 컨트롤이 있습니다. 모두 간단한 텍스트 헤더를 가지고 있습니다. 오리엔테이션 변경을 기반으로 헤더의 가시성을 어떻게 변경합니까? 내가 원하는 것은 전화기가 가로 방향 일 때헤더를 보이지 않게하고 피봇 아이템 내부의 해당 내용에 활용할 모든 공간을 원합니다. 많이 시도했는데 가장 큰 문제는 헤더가있는 패널이 항상 원래 높이를 사용한다는 것입니다. (글꼴 크기, 가시성 등을 변경하려고했습니다 ...) 도와주세요. 여기에 내가이 일을 할 수프로그래밍 방식으로 피벗 항목 헤더를 숨기거나 표시하는 방법

답변

1

(이전 버전과의 호환성의 이유) 윈도우 폰 SDK 7.0을 사용하고 내 코드 샘플

<controls:Pivot x:Name="pvtMain" >           

     <controls:PivotItem x:Name="pvtItemOne" Header="My Header one"> 

        <MyUserControls:UserControlOne/>    

     </controls:PivotItem> 

     <controls:PivotItem x:Name="pvtItemTwo" Header="My Header Two"> 

        <MyUserControls:UserControlTwo/>    

     </controls:PivotItem> 

     <controls:PivotItem x:Name="pvtItemThree" Header="My Header Three"> 

        <MyUserControls:UserControlThree/>    

     </controls:PivotItem> 


    </controls:PivotItem> 

입니다. 시도 해봐!!

void MainPage_OrientationChanged(object sender, OrientationChangedEventArgs e) 
    { 
     if (e.Orientation == PageOrientation.Landscape || e.Orientation == PageOrientation.LandscapeLeft || e.Orientation == PageOrientation.LandscapeRight) 
     { 
      pvtItemOne.Header = null; 
      pvtItemTwo.Header = null; 
      pvtItemThree.Header = null; 
      pvtMain.Margin = new Thickness(0, -150, 0, 0); 
     } 
     else 
      { 
       pvtItemOne.Header = "My Header One"; 
       pvtItemTwo.Header = "My Header Two"; 
       pvtItemThree.Header = "My Header Three"; 
       pvtMain.Margin = new Thickness(0); 
      } 
    } 

그런데 7.0 장치의 경우 이전 버전과의 호환성을 유지할 필요가 없습니다. 마이크로 소프트는 오랫동안 그러한 장치에 대한 지원을 중단했고 마켓 플레이스는이를 지원하지 않습니다.

+0

대단히 감사합니다. 이것은 매우 쉽게 작동합니다! 그러나 두께가 "새로운 두께 (0, -150, 0, 0)인지 확실하지 않습니다." 모든 화면 크기에서 정상적으로 작동합니다. 나는 그런 것들을 피하기 위해 Windows phone의 정적 리소스를 사용하는 것을 좋아합니다. 다시 한번 감사드립니다! –

0

는 다음과 같은 작업을 수행 할 수 있습니다

    <controls:PivotItem > 
         <controls:PivotItem.Header> 
          <Border x:Name="PivotItemHeader"> 
           <TextBlock Text="Test" /> 
          </Border> 
         </controls:PivotItem.Header> 
         <StackPanel> 
          <TextBlock Text="line1" /> 
          <TextBlock Text="line2" /> 
         </StackPanel>  
        </controls:PivotItem> 

당신이 코드에서의 가시성을 제어 할 수있는 헤더 내부의 "경계"를 사용하여. like : PivotItemHeader.Visibility = System.Windows.Visibility.Collapsed;

예쁜 것은 아니지만 잘 작동합니다.

관련 문제