2012-07-12 110 views
0

我有一個WPF形成了這樣的佈局:WPF畫布Line對象visibily

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

你可以看到我有一個DataGrid,我將文件加載到。 Datagrid的一些單元正在通過線連接。這些線放在畫布上。這一切都很好。

但現在我有一個很大的問題。我可以禁用所有行,不要通過z-index遍歷整個表單。我向下滾動的唯一區域是DataGridColumnHeader。

你有什麼想法,有什麼我能做到這一點的線具有較低的z-index然後我DataGridColumnHeader但更大的或相同我DataGridCells?

回答

0

無法通過設置ZIndex的手段解決了這個問題,因爲該索引僅控制一個面板內部元件的z順序。

但是,您可以設置畫布的Margin,以便它不覆蓋DataGridColumnHeader,然後將其ClipToBounds屬性設置爲true。

<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> 

我沒有測試上面的XAML,但它應該工作。