我创建了UserControl并将其显示在外部窗口中。这意味着我创建了插件,并将其用于宿主应用程序(不是我创建的),该宿主应用程序将WPF UserControl显示为GUI。
一切正常,我可以重新打开窗口,它是确定,但
当窗口由主机应用程序重新创建时。这意味着,双击窗口时,主机应用程序会更改window(<我得到这个例外:System.ArgumentException:Visual Target的根Visual无法具有父级
...
在App.Xaml.csline 78中的mf_GetViewIP(IntPtr&view)处
这是我如何显示WPF USerControl的代码
private void mf_GetViewIP(ref IntPtr view)
{
try
{
if (m_main_view == null)
{
m_main_view = new Views.uc_main_view();
m_main_view.VerticalAlignment = VerticalAlignment.Stretch;
m_main_view.HorizontalAlignment = HorizontalAlignment.Stretch;
}
sourceParam = new HwndSourceParameters("Arpegissimo ML");
sourceParam.PositionX = 0;
sourceParam.PositionY = 0;
sourceParam.ParentWindow = view;
sourceParam.WindowStyle = WS_VISIBLE | WS_CHILD;
source = new HwndSource(sourceParam);
source.RootVisual = m_main_view; // csline 78 (exception)
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}
if (mfp_wai_set != null)
{
mfp_wai_set();
}
}
例外消失
if (m_main_view == null)
被删除并且m_main_view
一直为new
这就是我要避免的。m_main_view
(每次new
都不要使用)而没有得到此异常?可能吗?我只想避免每次加载时都需要重新显示GUI时准备视图。我创建了UserControl并将其显示在外部窗口中。这意味着我创建了插件,并将其用于宿主应用程序(不是我创建的),该宿主应用程序将WPF UserControl显示为GUI。一切都是...