public AvaloniaNativeMenuExporter(IAvnTrayIcon trayIcon, IAvaloniaNativeFactory factory)
        {
            _factory  = factory;
            _trayIcon = trayIcon;

            DoLayoutReset();
        }
        public AvaloniaNativeMenuExporter(IAvnTrayIcon trayIcon, IAvaloniaNativeFactory factory)
        {
            _factory             = factory;
            _trayIcon            = trayIcon;
            _applicationCommands = _factory.CreateApplicationCommands();

            DoLayoutReset();
        }
        private void SetMenu(IAvnTrayIcon trayIcon, NativeMenu menu)
        {
            var setMenu = false;

            if (_nativeMenu is null)
            {
                _nativeMenu = __MicroComIAvnMenuProxy.Create(_factory);

                _nativeMenu.Initialize(this, menu, "");

                setMenu = true;
            }

            _nativeMenu.Update(_factory, menu);

            if (setMenu)
            {
                trayIcon.SetMenu(_nativeMenu);
            }
        }
        public TrayIconImpl(IAvaloniaNativeFactory factory)
        {
            _native = factory.CreateTrayIcon();

            MenuExporter = new AvaloniaNativeMenuExporter(_native, factory);
        }