2012-07-12 2 views
0

나는 같은 레이아웃으로 WPF 양식이 있습니다WPF 캔버스 라인의 목적은 visibily

<Grid> 
    <DataGrid> 
    ... 
    </DataGrid> 
    <Canvas> 
    ...contains lines created at runtime... 
    </Canvas> 
</Grid> 

당신은 내가에 파일을로드 할 데이터 그리드를 볼 수 있습니다. Datagrid의 셀 중 일부가 선으로 연결됩니다. 이러한 선은 캔버스에 배치됩니다. 그것들은 모두 정상적으로 작동합니다.

하지만 지금은 큰 문제가 있습니다. 내 모든 양식을 Z- 색인으로 이동하지 않도록 모든 행을 비활성화 할 수 있습니다. 아래로 스크롤 할 때 유일한 위치는 DataGridColumnHeader입니다.

줄의 Z- 인덱스가 낮 으면서 DataGridColumnHeader가 더 크지 만 DataGridCells는 더 크거나 같을 수 있습니다.

답변

0

ZIndex을 설정하여이 문제를 해결할 수 없습니다.이 색인은 한 패널 안의 요소의 z 순서 만 제어하기 때문에이 문제를 해결할 수 없습니다.

그러나 Canvas의 Margin을 DataGridColumnHeader를 덮지 않도록 설정 한 다음 ClipToBounds 속성을 true로 설정할 수 있습니다. 나는 위의 XAML을 테스트하지 않았습니다

<Grid> 
    <DataGrid Name="dataGrid"> 
    ... 
    </DataGrid> 
    <Canvas ClipToBounds="True"> 
     <Canvas.Margin> 
      <Thickness Top="{Binding ColumnHeaderHeight, ElementName=dataGrid}"/> 
     </Canvas.Margin> 
    ...contains lines created at runtime... 
    </Canvas> 
</Grid> 

하지만 해야 작동합니다.