GridSplitter скрыт элементом WinForm - PullRequest
0 голосов
/ 06 апреля 2009

Я работаю в приложении WPF. И моя проблема связана с видимостью GridSplitter.

В моем коде xaml я занимаюсь сеткой. В 3-й строке сетки я размещаю Winform DataGridView. В той же строке записан GridSplitter.

Когда GridSplitter перетаскивается для настройки размеров Grid Row, для других элементов управления, таких как кнопки и т. Д., Он отображается правильно. Но когда он переходит к DataGridView, который я размещаю, GridSplitter скрывается за размещенным элементом управления.

Фактически, все, что я размещаю вместо Datagridview, заставляет GridSplitter прятаться за ним, когда его перетаскивают.

Я попытался установить ZIndex для GridSplitter. Это не имело никакого значения.

Может кто-нибудь помочь мне с этим?

Ниже приведен пример кода 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>

Спасибо.

Ответы [ 2 ]

0 голосов
/ 12 октября 2010

Ваша сетка имеет только 2 определения строки, но нуждается в 3. На данный момент WindowsFormsHost и GridSplitter совместно используют второй ряд (т.е. Grid.Row = "1"). Предположительно, вы хотите, чтобы WindowsFormsHost использовал Grid.Row = "2".

0 голосов
/ 06 апреля 2009

К сожалению, элемент управления WinForms всегда будет располагаться поверх ваших элементов WPF, он делает то же самое, когда вы пытаетесь прокрутить его. Лучший способ обойти это - поместить необходимую логику для определения размера / прокрутки / любой части WinForms в элемент управления WinForms, а затем разместить этот элемент управления в форме WPF.

...