Winform UserControl и wpf WindowsFormHost: UserControl выходит за границы WindowsFormHost

По какой-то причине я не могу настроить свой пользовательский контроль Winform внутри WindowsFormsHost. Вот xaml, который я использую:

<Grid>
  <Grid.ColumnDefinitions>
    <ColumnDefinition Width="326*" />
    <ColumnDefinition Width="300*" />
  </Grid.ColumnDefinitions>
  <Grid.RowDefinitions>
    <RowDefinition Height="264*" />
    <RowDefinition Height="100*" />
    <RowDefinition Height="50*" />
  </Grid.RowDefinitions>
  <WindowsFormsHost   Grid.Row="1"
                      Grid.Column="0">
    <winforms:ServicesUserControl x:Name="servicesUserControl"
                                  UserCanEditRevenue="True"
                                  BorderStyle="Fixed3D">
    </winforms:ServicesUserControl>
  </WindowsFormsHost>
</Grid>

Вот скриншот, чтобы показать, что я имею в виду:

Вот оригинальный пользовательский элемент управления:

Но когда я помещаю это в WindowsFormHost, я получаю это:

1 ответ

Решение

Если у UserControl нет собственной логики для изменения размера столбцов, ширина UserControl будет привязана к ширине его столбцов. Я бы попробовал реализовать WinFormsHost внутри ScrollViewer, если это будет приемлемый макет.

<ScrollViewer Grid.Row="1"
              Grid.Column="0">
  <WindowsFormsHost>
    <winforms:ServicesUserControl x:Name="servicesUserControl"
                                  UserCanEditRevenue="True"
                                  BorderStyle="Fixed3D" />
  </WindowsFormsHost>
</ScrollViewer>
Другие вопросы по тегам