UsrWpfPanel.cs 2.0 KB
using Asa.FaceControl;
using Model;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Forms;
using System.Windows.Forms.Integration;

namespace SmartScan.SetControl.WPF
{
    public partial class UsrWpfPanel : UserControl, ISetMenu
    {
        private readonly NS_Keyword _keywordControl; // 添加对NS_Keyword的引用
        private readonly WPFWorkMode  workMode;
        private readonly WPF_MaterialTemplate _materialTemplate;
        public UsrWpfPanel(UIElement ctl)
        {
            InitializeComponent();
            if (ctl is NS_Keyword keyword)
            {
                _keywordControl = keyword;
            }else if (ctl is WPFWorkMode workModes)
            {
                workMode = workModes;
            }else if (ctl is WPF_MaterialTemplate  wPF_MaterialTemplate)
            {
                _materialTemplate = wPF_MaterialTemplate;
            }
            else
            {
                throw new ArgumentException("必须传入NS_Keyword类型的控件");
            }

            elementHost = new ElementHost
            {
                Dock = DockStyle.Fill,
            };
            elementHost.Child = ctl;
        }
        ElementHost elementHost;
        FacePanel ISetMenu.GetPanel()
        {    
            facepnl.Controls.Add(elementHost);
            return facepnl;
        }

        void ISetMenu.Save()
        {
            // 调用NS_Keyword的Save方法
            if (_keywordControl != null)
            {
                _keywordControl.Save();
            }
            else if(workMode != null)
            {
                workMode.Save();
            }else if (_materialTemplate!=null)
            {
                _materialTemplate.Save();
            }
            else
            {
                throw new InvalidOperationException("NS_Keyword实例未初始化");
            }

        }
    }
}