2009-04-06 25 views
0

私はWPFアプリケーションで作業しています。私の問題は、GridSplitterの可視性に関するものです。GridSplitterはWinForm要素によって隠されています

私のxamlコードでは、私はグリッドを作成しています。グリッドの3行目で、私はWinform DataGridViewをホストしています。同じ行には、GridSplitterが書き込まれます。

グリッドの行サイズを調整するためにGridSplitterをドラッグすると、Buttonsなどの他のコントロールで正しく表示されます。 しかし、私がホスティングしているDataGridViewの上に来ると、GridSplitterはホストされたコントロールの背後に隠れてしまいます。

実際、Datagridviewの代わりに私がホストしているものは、GridSplitterがドラッグされたときにその背後に隠れるようにします。

私はGridSplitterのZIndexを設定しようとしました。それは何の違いもありませんでした。

誰もがこれを手伝ってくれますか?続き

は私のXAMLのサンプルコードである: -

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Name="rowForButton"/> 
     <RowDefinition Name="rowForGridSplitter" Height="Auto" MinHeight="81" /> 
    </Grid.RowDefinitions> 
    <Button Grid.Row="0" Height="50" Width="110" Content="Button in First Row"/> 
    <my:WindowsFormsHost Panel.ZIndex="0" Grid.Row="1" Margin="30,11,138,0" x:Name="winHost" Height="58" VerticalAlignment="Top" OpacityMask="Transparent">    
     <win:DataGridView x:Name="dataGridView"></win:DataGridView> 
    </my:WindowsFormsHost>   
    <GridSplitter BorderThickness="1" Panel.ZIndex="1" Grid.Row="1" HorizontalAlignment="Stretch" Height="5" ShowsPreview="True" VerticalAlignment="Top"> 
    </GridSplitter> 
</Grid> 

感謝。

+0

重複したhttp://stackoverflow.com/questions/720375/wpf-gridsplitter-visiblity。質問を編集して質問に情報を追加することができます。 – Joey

+0

何か問題があったので私は同じことをすることができませんでした。 申し訳ありません。 : –

答えて

0

残念なことに、WinFormsコントロールは常にWPF要素の上に置かれますが、試してスクロールするときも同じです。この問題を回避する最も良い方法は、WinFormsコントロールの中にあるWinFormsのサイズ/スクロール/任意のロジックに必要なロジックを配置し、そのコントロールをWPF形式でホストすることです。

+0

サイズ調整ロジック、つまりGridSplitterコントロールを使用しました。ホストするコントロールが第三者コントロールであるため、Winフォームコントロールに配置できません。 –

0

グリッドには2つのローの定義がありますが、3つ必要です。WindowsFormsHostとGridSplitterは2番目のローを共有しています(Grid.Row = "1")。おそらく、WindowsFormsHostにGrid.Row = "2"を使用させたいと考えています。

関連する問題