首页 文章

如何调整WindowsFormsHost的大小?

提问于
浏览
0

我使用WindowsFormsHost来显示640x480图像 . 使用Height =“120”Width =“160”和Grid.ColumnSpan =“3”这样的WindowsFormsHost工作正常

<Grid Name="MainGrid" Margin="10 10 10 10">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition Width="Auto"/>
    </Grid.ColumnDefinitions>
    <WindowsFormsHost Name="WindowsFormsHostL" Height="120" Width="160"
        HorizontalAlignment="Center" Grid.Row="0" Grid.Column="0" 
        Grid.ColumnSpan="3"/>

但是当我尝试将WindowsFormsHost的大小加倍时

<WindowsFormsHost Name="WindowsFormsHostL" Height="240" Width="320"
        HorizontalAlignment="Center" Grid.Row="0" Grid.Column="0" 
        Grid.ColumnSpan="3"/>

WindowsFormsHost在.NET xaml查看器中是正确的,但看起来变得更小,做一个HorizontalAlignment =“Left”,并且变为正方形 . 这个

Debug.WriteLine(
      "WindowsFormsHostL.ActualHeight " + WindowsFormsHostL.ActualHeight
    + " WindowsFormsHostL.ActualWidth " + WindowsFormsHostL.ActualWidth);

打印这个

WindowsFormsHostL.ActualHeight 240 WindowsFormsHostL.ActualWidth 320

所以运行时似乎认为它是正确的 . 我正在做干净的构建 . 我错过了什么?理解?为什么我不能简单地在xaml中增加这个WindowsFormsHost的大小?

1 回答

  • 0

    为什么不将Grid的Row和Column定义设置为您想要显示的大小?

    行定义:

    <RowDefinition Height="240"/>
    

    栏目定义:

    <ColumnDefinition Width="320"/>
    

    然后将水平和垂直对齐设置为“拉伸”?

相关问题