Привет, коллеги!
У меня есть вопрос.
Как нарисовать контур xld на HSmartWindowControl?
Я использую новый созданный экземпляр HSmartWindowControl для рисования некоторого контура xld, и после этого я закрываю этот экземпляр и созданный контур XLD перемещается в мой HSmarrtWindowControl на форме . Но это
неудобно ! Мне нужно нарисовать XLD ON Текущий HSmartWindowControl (SmartWin) ON Форма без создания нового экземпляра.
Теперь я делаю это так:
Private List <HXLDCont> Regions = new new List < HXLDCont> ();.
..
bSetPatternPoints.Click + = (s, e) =>
{
Объект
HObject ; SmartWin.HalconWindow.SetWindowParam ("flush", "false");
double r1, c1, r2, c2;
HSmartWindowControl newWin = new HSmartWindowControl ();
newWin.HalconWindow.OpenWindow (0, 0, 600, 600, 0, "видимый", "");
newWin.HalconWindow.DispObj (background_image);
newWin.HalconWindow.SetColor (новый HTuple (ColorToHalconColorWithOpacity (ColorTranslator.FromHtml ("# 00FF0C"), 255)));
newWin.HalconWindow.SetLineWidth (2);
HXLDCont contour = newWin.HalconWidth, "," истина "," истина ");
newWin.HalconWindow.CloseWindow ();
SmartWin.HalconWindow.DispObj (background_image);
SmartWin.HalconWindow.SetColor (новый HTuple (ColorToHalconColorWithOpacity (ColorTranslator.FromHtml ("# 00FF0C"), 255)));
SmartWin.HalconWindow.SetLineWidth (2);
SmartWin.HalconWindow.SetWindowParam ", false"
SmartWin.HalconWindow.ClearWindow ();
SmartWin.HalconWindow.DispObj (background_image);
SmartWin.HalconWindow.DispXld (контур);
SmartWin.HalconWindow.SetWindowParam ( "заподлицо", "истина");
SmartWin.HalconWindow.FlushBuffer ();
регионы .Add (контур);
SmartWinManager.RedrawAllObjects (SmartWin.HalconWindow);
};
Проблема в том, что мой текущий элемент управления (SmartWin) зависает после вызова оператора DrawXld. Но если я создал новый экземпляр того же класса и использовал оператор OpenWindow, тогда все работает нормально.
Вы можете мне помочь?
|