| | |
| | | using HMI.Base; |
| | | using HMI.Core.Api; |
| | | using Panuon.WPF.UI; |
| | | using Plugin.TestResult_WPF.Model; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Collections.ObjectModel; |
| | | using System.ComponentModel; |
| | |
| | | |
| | | namespace WPFProject.Controls |
| | | { |
| | | public class TabChangedEventArg |
| | | { |
| | | public IPlugin oldValue { get; set; } |
| | | public IPlugin newValue { get; set; } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// MainTabControl.xaml 的交互逻辑 |
| | | /// </summary> |
| | |
| | | } |
| | | |
| | | // Tab切换事件 |
| | | public static readonly RoutedEvent OnTabChangeEvent = |
| | | EventManager.RegisterRoutedEvent("OnTabChange", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(MenuTabControl)); |
| | | |
| | | public event RoutedEventHandler OnTabChange |
| | | { |
| | | add |
| | | { |
| | | AddHandler(OnTabChangeEvent, value); |
| | | } |
| | | |
| | | remove |
| | | { |
| | | RemoveHandler(OnTabChangeEvent, value); |
| | | } |
| | | } |
| | | public event EventHandler<TabChangedEventArg> TabChanged; |
| | | |
| | | private ObservableCollection<PluginInfo> _MenuItems; |
| | | |
| | |
| | | } |
| | | |
| | | var content = data.Content; |
| | | var last = page.Child; |
| | | PluginPackage.Get(last)?.DeActive(); |
| | | var newPlugin = PluginPackage.Get(content); |
| | | var last = PluginPackage.Get(page.Child); |
| | | |
| | | if (last != null && !last.CanDeActive()) |
| | | { |
| | | SelectedSubMenu = (PluginInfo)e.RemovedItems[0]; |
| | | return; |
| | | } |
| | | |
| | | if (newPlugin != null && !newPlugin.CanActive()) |
| | | { |
| | | if (e.RemovedItems.Count > 0) |
| | | { |
| | | SelectedSubMenu = (PluginInfo)e.RemovedItems[0]; |
| | | } |
| | | return; |
| | | } |
| | | |
| | | last?.DeActive(); |
| | | newPlugin?.Active(); |
| | | if (data.Type == "WinForm") |
| | | { |
| | | if (content is System.Windows.Forms.Form form) |
| | |
| | | { |
| | | page.Child = (UIElement)content; |
| | | } |
| | | |
| | | PluginPackage.Get(content)?.Active(); |
| | | TabChanged?.Invoke(this, new TabChangedEventArg { oldValue = last, newValue = newPlugin }); |
| | | } |
| | | } |
| | | |
| | | private void UserControl_Loaded(object sender, RoutedEventArgs e) |
| | | { |
| | | var ss = ((WindowX)Window.GetWindow(this)); |
| | | Binding binding = new Binding("IsMaskVisible") |
| | | { |
| | | Source = ((WindowX)Window.GetWindow(this)), |
| | | Mode = BindingMode.TwoWay, |
| | | UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged |
| | | }; |
| | | winFormHolder.SetBinding(WinFormHolder.MaskVisiableProperty, binding); |
| | | /// binding WinformHost 遮罩 |
| | | //Binding binding = new Binding("IsMaskVisible") |
| | | //{ |
| | | // Source = ((WindowX)Window.GetWindow(this)), |
| | | // Mode = BindingMode.TwoWay, |
| | | // UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged |
| | | //}; |
| | | //winFormHolder.SetBinding(WinFormHolder.MaskVisiableProperty, binding); |
| | | if (MenuItems != null && MenuItems.Count > 0) |
| | | { |
| | | SelectedMenu = MenuItems[0]; |