2011-09-11 5 views
0

측면 패널을 표시하고 고정/고정 해제 할 수있는 WPF 옵션을 찾고 있습니다. 기본적으로 이것은 중앙에 주 제어 장치가 있고이 주 제어 장치의 왼쪽과 오른쪽에 여러 개의 다른 패널이있는 창을 의미합니다. 이러한 패널은 기본적으로 헤더가 표시된 상태로 축소되어 있으며, 그 위에 마우스를 가져 가면 기본 컨트롤을 벗어나지 않고 기본 컨트롤 위로 확장되지만이 패널을 고정하여 확장 된 상태로 유지할 수있는 옵션도 있습니다. 아웃,이 시간은 주요 센터 컨트롤의 크기를 강제로.높이를 채우지 않는 WPF 고정 옵션

이제 대부분의 도킹 제어 옵션과 비슷하게 들었고 실제로는 AvalonMixModes Synergy을 보았습니다. 그러나이 옵션의 문제점은 패널이 전체 높이를 채우는 것입니다. 나는 특정 높이의 패널이 위에 올랐을 때 나올 것을 원한다. 나는 그것을 화면에 채우기를 원하지 않는다. 그리고 나는 그것을하는 다른 것을 찾을 수 없다. 다른 사람이 뭔가를 본거야?

기본적으로이 작업을 수행하는 방법에 대한 내 자신의 아이디어는 프로그래밍 방식으로 하나의 고정 된 컨트롤에서 다른 고정되지 않은 컨트롤로 패널을 이동하는 것과 관련이 있지만,이 방법은 미친 것처럼 들리지만 대안을 선호합니다.

답변

0

다음은 고정/고정 해제 기능을 구현하는 방법에 대한 순수 XAML 예입니다. 주 콘텐츠의 동일한 격자 열상에서 상기 코드에서

<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="Auto"/> 
     <ColumnDefinition Width="*"/> 
    </Grid.ColumnDefinitions> 


    <DockPanel Grid.Column="1"> 
     <Label Content="Main Content Area" FontSize="22" 
       VerticalAlignment="Center" HorizontalAlignment="Center"/> 
    </DockPanel> 

    <StackPanel HorizontalAlignment="Left"> 
     <StackPanel.Style> 
      <Style> 
       <Setter Property="Grid.Column" Value="1"/> 
       <Style.Triggers> 
        <DataTrigger Binding="{Binding ElementName=LeftPinBtn,Path=IsChecked}" Value="True"> 
         <Setter Property="Grid.Column" Value="0"/> 
        </DataTrigger> 
       </Style.Triggers> 
      </Style> 
     </StackPanel.Style> 
     <ToggleButton Content="Pin/Unpin" x:Name="LeftPinBtn"/> 
    </StackPanel> 

</Grid> 

,

  • 왼쪽 패널 거짓말 수레.
  • 토글 버튼을 선택하면 해당 도킹 그리드 열로 이동합니다.

&에는 패널을 표시하거나 숨길 수있는 mouseover 이벤트가 포함되어 있습니다.

  • 우측 + HorizontalAlignment="Right" 에 그리드 열을 추가하는 것은 당신에게 오른쪽 패널을 줄 것이다. 마찬가지로 & VerticalAlignment 바닥/상단 핀 기능을 추가한다 (컬럼 대신) 를 사용
  • .
+0

감사합니다.이 부분은 유용하지만 마우스 오버 섹션을 찾는 것이 쉽지 않을 것입니다. 내가 찾고있는 것은 3 상태 확장기, unpinned/collapsed (마우스가 끝나지 않았 음), unpinned/expanded (마우스가 끝났음) 및 고정/확장 된 상태와 같은 것입니다. 그 3 가지 상태의 가치를 기반으로, grid.column을 어디에 넣을 지 알고 싶습니다. 고정 해제/접을 때 머리글을 90도 회전해도 문제가 발생하지 않지만 실제로는 축소됩니다. 웬일인지 내가 그것을 할 때 폭을 유지하는 것처럼 보인다). – Phil