0

基本的にこれがスペース全体を占めるWPFウィンドウがあります。

<WindowsFormsHost Grid.RowSpan="2" Name="wfh" VerticalAlignment="Stretch" Width="Auto" Height="Auto" Cursor="IBeam" ForceCursor="True" SnapsToDevicePixels="True" >
    <ax:AxViewerActiveX x:Name="_axViewer" AutoSize="True"  Cursor="Cross" Margin="0,0,0,0" Padding="0,0,0,0" UseWaitCursor="True">
    </ax:AxViewerActiveX>
</WindowsFormsHost>

このウィンドウを初めて実行ShowDialog()すると、ウィンドウは空白になります。 ここに画像の説明を入力

2 回目は、次のように表示されます。

ここに画像の説明を入力

誰かがウィンドウのレンダリングを初めて正しく行うのを手伝ってくれませんか?

このウィンドウ クラスのコンストラクタ:

this.InitializeComponent();
_axViewer.BeginInit();
_axViewer.EndInit();

Focus();
_axViewer.Focus();

呼び出すときは次のように簡単です。

w3d.WindowState = WindowState.Maximized;
w3d.ShowDialog();
4

1 に答える 1

1

ActiveX コントロールの初期化を .Loaded() メソッドに入れてみませんか?

this.InitializeComponent();
Loaded += delegate {
    _axViewer.BeginInit();
    _axViewer.EndInit();

    Focus();
    _axViewer.Focus();
};
于 2012-08-22T16:37:41.013 に答える