0

このようなレイアウトのWPFフォームがあります。

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

ファイルをロードするDataGridがあることがわかります。データグリッドのセルの一部は、回線によって接続されています。これらの線はキャンバスに配置されます。それはすべて本当にうまくいきます。

しかし今、私には1つの大きな問題があります。z-indexによって、フォーム全体を超えないようにすべての行を無効にすることができます。下にスクロールしたときに表示されるのは、DataGridColumnHeaderだけです。

線のz-indexがDataGridColumnHeaderよりも低いが、DataGridCellsよりも大きいか同じであるということで、私に何ができるかわかりますか?

4

1 に答える 1

0

このインデックスは1つのパネル内の要素のzオーダーのみを制御するため、 ZIndexを設定してこの問題を解決することはできません。

ただし、DataGridColumnHeaderをカバーしないようにCanvasのマージンを設定してから、 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はテストしていませんが、動作するはずです。

于 2012-07-12T08:53:29.427 に答える