Wpf用窗口调整对象大小

时间:2011-03-22 16:47:09

标签: wpf resize

环顾四周寻找一种方法来调整窗口大小调整大小而不明确告诉我的对象抓住窗口大小。

以下是代码:

    <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>

接着是示例显示here

编辑:问题:为什么面板不会随窗口大小调整?

3 个答案:

答案 0 :(得分:2)

只需删除明确的WidthHeight设置,以及HorizontalAlignmentVerticalAlignment设置,即可:

<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 :(得分:1)

将您的高度/宽度绑定到窗口的高度/宽度

<Window x:Name="Root_Window">
  <Grid Height="{Binding ElementName=RootWindow, Path=ActualHeight}"
        Width="{Binding ElementName=RootWindow, Path=ActualWidth}">
      <!-- Content Here -->
  </Grid>
</Window>

答案 2 :(得分:0)

答案:问题不在于面板,而是api用来创建它的内容。