Инициируйте HalconWindow / HSmartWindowControlWPF в фоновом режиме в C # - PullRequest
0 голосов
/ 23 октября 2019

Есть ли способ инициализировать HalconWindow или HSmartWindowControlWPF в C #? У меня есть несколько HSmartWindowControlWPFs в TabView, но обновляются только те, которые были видны ранее. Поэтому, если я пытаюсь поставить HImage во всех HalconWindows, не выбирая другую вкладку, отличную от предыдущей, обновляется только вкладка по умолчанию, все остальные HalconWindows остаются черными. Но если они были выбраны, они обновляются. Есть ли способ создать это поведение автоматически?

1 Ответ

0 голосов
/ 11 ноября 2019

Ключ заключается в индексировании вкладок при инициализации, чтобы они инициализировали элементы управления.

    private void TabbedHalconApp_Loaded(Object sender, RoutedEventArgs e)
    {
        TabControl1.BeginInit();
        for (int index = 0; index < this.TabControl1.Items.Count; index++)
        {
            this.TabControl1.SelectedIndex = index;
            this.TabControl1.UpdateLayout();
        }
        // Reset to first tab
        this.TabControl1.SelectedIndex = 0;
        TabControl1.EndInit();
    }

Затем вы можете загрузить изображение в окно Halcon. Вот как вы можете сделать это, когда форма загружена.

    private void HWindow2_Loaded(Object sender, EventArgs e)
    {
        (sender as HSmartWindowControlWPF).HalconWindow.DispImage(myTestImage);
    }

    private void HWindow1_Loaded(Object sender, RoutedEventArgs e)
    {
        (sender as HSmartWindowControlWPF).HalconWindow.DispImage(myTestImage);
    }
...