0

我正在使用 WindowsFormsHost 来显示 640x480 图像。WindowsFormsHost 像这样使用 Height="120" Width="160" 和 Grid.ColumnSpan="3" 可以正常工作

<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 查看器中是正确的,但似乎变小了,执行 Horizo​​ntalAlignment="Left",然后变成正方形。这个

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

打印这个

WindowsFormsHostL.ActualHeight 240 WindowsFormsHostL.ActualWidth 320

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

4

1 回答 1

0

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

行定义:

<RowDefinition Height="240"/> 

列定义:

<ColumnDefinition Width="320"/>

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

于 2013-07-22T15:18:59.833 回答