| | |
| | | using System.Collections.ObjectModel; |
| | | using HMI.Base; |
| | | using HMI.Core.Api; |
| | | using Microsoft.DwayneNeed.Interop; |
| | | using Panuon.WPF.UI; |
| | | using System.Collections.ObjectModel; |
| | | using System.ComponentModel; |
| | | using System.Runtime.CompilerServices; |
| | | using System.Windows; |
| | | using System.Windows.Controls; |
| | | using HMI.Base; |
| | | using HMI.Core.Api; |
| | | using System.Windows.Data; |
| | | using System.Windows.Forms.Integration; |
| | | using System.Windows.Media; |
| | | using WPFProject.UI; |
| | | |
| | | namespace WPFProject.Controls |
| | |
| | | } |
| | | #endregion |
| | | |
| | | private WinFormHolder winFormHolder; |
| | | public MainTabControl() |
| | | { |
| | | IPlugin plugin = new WorkControl(); |
| | | MenuItems = new ObservableCollection<PluginInfo>( PluginLoader.GetLoader().Menus); |
| | | SubMenuItems = MenuItems[0].Children; |
| | | this.DataContext = this; |
| | | winFormHolder = new WinFormHolder(); |
| | | InitializeComponent(); |
| | | } |
| | | |
| | |
| | | if (e.AddedItems?.Count > 0) |
| | | { |
| | | var data = (PluginInfo)e.AddedItems[0]; |
| | | var content = (UIElement)data.Content; |
| | | var last = (IPlugin)page.Child; |
| | | last?.DeActive(); |
| | | page.Child = content; |
| | | ((IPlugin)content)?.Active(); |
| | | var content = data.Content; |
| | | var last = page.Child; |
| | | PluginPackage.Get(last)?.DeActive(); |
| | | if (data.Type == "WinForm") |
| | | { |
| | | if (content is System.Windows.Forms.Form form) |
| | | { |
| | | winFormHolder.Content = form; |
| | | } |
| | | else |
| | | { |
| | | winFormHolder.Content = content; |
| | | } |
| | | page.Child = winFormHolder; |
| | | } |
| | | else |
| | | { |
| | | page.Child = (UIElement)content; |
| | | } |
| | | |
| | | PluginPackage.Get(content)?.Active(); |
| | | } |
| | | } |
| | | |
| | | 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); |
| | | } |
| | | } |
| | | } |