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 のサイズを 2 倍にしようとすると

    <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

グリッドの行と列の定義を表示したいサイズに設定しないのはなぜですか?

行の定義:

<RowDefinition Height="240"/> 

列の定義:

<ColumnDefinition Width="320"/>

次に、水平方向と垂直方向の配置を「ストレッチ」に設定しますか?

于 2013-07-22T15:18:59.833 に答える