我正在使用WPF应用程序。我的问题是关于GridSplitter的可见性。
在我的xaml代码中,我正在维护一个网格。在Grid的第3行,我正在托管一个Winform DataGridView。在同一行中,GridSplitter被写入。
拖动GridSplitter以调整网格行大小,对于其他控件(如按钮等),它是正确可见的。 但当它来到我托管的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 :(得分:0)
不幸的是,WinForms控件将始终位于WPF元素的顶部,当您尝试滚动它时它也会这样做。解决它的最佳方法是将所需的逻辑调整/滚动/无论WinForms部分放入WinForms控件,然后以WPF格式托管该控件。
答案 1 :(得分:0)
您的网格只有2个行定义但需要3.目前WindowsFormsHost和GridSplitter共享第二行(即Grid.Row =“1”)。大概你希望WindowsFormsHost使用Grid.Row =“2”。