在wpf中托管ocx控件时调整问题大小

时间:2010-07-07 04:42:13

标签: wpf

我在我的wpf应用程序中托管了一个ocx控件(用于绘图的图形控件)。问题是在调整主窗口大小时不会调整大小。控件倾向于保持其原始大小,并且当主窗口调整大小时,ocx控件被剪切而不调整大小。有没有解决这个问题的方法。

1 个答案:

答案 0 :(得分:1)

据我所知,ocx控件不会经过正常WPF控制所通常的排列/测量周期。您可以做的最好的事情是处理窗口或面板的SizeChanged事件(包含控件的任何事件),并适当调整ocx控件的大小。例如,如果控件托管在名为gridGraph的网格中:

public Window1()
{
    InitializeComponent();
    gridGraph.SizeChanged += 
        new SizeChangedEventHandler(gridGraph_SizeChanged);
}

void gridGraph_SizeChanged(object sender, SizeChangedEventArgs e)
{
    Size size = e.NewSize;
    myOcx.Width = size.Width;
    myOcx.Height = size.Height;
}

您的里程可能会有所不同 - 您必须根据特定的容器和设置调整控制。