private void LoadVrm()
        {
            var dialog = new OpenFileDialog()
            {
                Title       = "Open VRM file",
                Filter      = "VRM files (*.vrm)|*.vrm|All files (*.*)|*.*",
                Multiselect = false,
            };

            if (!(
                    dialog.ShowDialog() == true &&
                    File.Exists(dialog.FileName)
                    ))
            {
                return;
            }

            UdpSender.SendMessage(UdpMessageFactory.Instance.OpenVrmPreview(dialog.FileName));

            bool turnOffTopMostTemporary = BackgroundSetting.TopMost;

            if (turnOffTopMostTemporary)
            {
                BackgroundSetting.TopMost = false;
            }

            var res = MessageBox.Show(
                "ビューアー画面のライセンスを確認してください。読み込みますか?",
                "VRMの読み込み",
                MessageBoxButton.OKCancel
                );

            if (res == MessageBoxResult.OK)
            {
                UdpSender.SendMessage(UdpMessageFactory.Instance.OpenVrm(dialog.FileName));
                _lastVrmLoadFilePath = dialog.FileName;
            }
            else
            {
                UdpSender.SendMessage(UdpMessageFactory.Instance.CancelLoadVrm());
            }

            if (turnOffTopMostTemporary)
            {
                BackgroundSetting.TopMost = true;
            }
        }
        private void LoadLastLoadedVrm()
        {
            try
            {
                string settingFilePath = GetFilePath(SpecialFileNames.LastVrmLoadedFile);
                if (!File.Exists(settingFilePath))
                {
                    return;
                }

                string vrmPath = File.ReadAllText(settingFilePath);
                if (File.Exists(vrmPath))
                {
                    UdpSender.SendMessage(UdpMessageFactory.Instance.OpenVrm(vrmPath));
                    _lastVrmLoadFilePath = vrmPath;
                }
            }
            catch (Exception)
            {
            }
        }
 private void OnMouseButton(object sender, MouseButtonEventArgs e)
 => UdpSender.SendMessage(UdpMessageFactory.Instance.MouseButton(e.Info));
 private void OnMouseMoved(object sender, EventArgs e)
 => UdpSender.SendMessage(UdpMessageFactory.Instance.MouseMoved(InputChecker.X, InputChecker.Y));
 private void OnKeyDown(object sender, EventArgs e)
 => UdpSender.SendMessage(UdpMessageFactory.Instance.KeyDown(InputChecker.KeyCode));