Wpf Изменить размер объекта с окном - PullRequest
0 голосов
/ 22 марта 2011

Осмотрелся, чтобы найти способ изменить размер, связать с изменением размера окна, не указав явно моему объекту захватить размер окна.

Вот код:

    <Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <WindowsFormsHost Background="{x:Null}" Grid.Row="0" Grid.Column="0" HorizontalAlignment="Left" Name="windowsFormsHost1" VerticalAlignment="Top"  Margin="-1,0,0,0">
        <wf:Panel x:Name="pnlLivePreview" />
    </WindowsFormsHost>
</Grid>

Это было сделанона примере, показанном здесь

Редактировать: Вопрос: Почему размер панели не изменяется вместе с окном?

Ответы [ 3 ]

2 голосов
/ 22 марта 2011

Просто удалите явные настройки Width и Height и настройки HorizontalAlignment и VerticalAlignment, таким образом:

<WindowsFormsHost Background="{x:Null}" 
                  Name="windowsFormsHost1" 
                  Margin="-1,0,0,0">
    <wf:Panel x:Name="pnlLivePreview" />
</WindowsFormsHost>

Я приведу здесь дикое предположение, но, поскольку это панель WinForms, попробуйте установить для ее свойства Dock значение Fill, таким образом:

    <wf:Panel x:Name="pnlLivePreview" Dock="Fill" />

Действительно не уверен, что это будет работать, если это не работает в разметке, попробуйте сделать это в коде.

1 голос
/ 22 марта 2011

Свяжите вашу высоту / ширину с высотой / шириной вашего окна

<Window x:Name="Root_Window">
  <Grid Height="{Binding ElementName=RootWindow, Path=ActualHeight}"
        Width="{Binding ElementName=RootWindow, Path=ActualWidth}">
      <!-- Content Here -->
  </Grid>
</Window>
0 голосов
/ 22 марта 2011

Ответ: Проблема не в панели, а в API, используемом для ее создания.

...