예제 #1
0
        private async void OnSaveClicked(object sender, RoutedEventArgs e)
        {
            SkeletonViewModel vm = this.DataContext as SkeletonViewModel;

            IViewService viewService = Services.Get <IViewService>();

            PoseFile.Groups groups = await viewService.ShowDialog <BoneGroupsSelectorDialog, PoseFile.Groups>("Save Pose...");

            if (groups == PoseFile.Groups.None)
            {
                return;
            }

            IFileService fileService = Services.Get <IFileService>();
            PoseFile     file        = new PoseFile();

            file.Read(vm.Bones, groups);

            await fileService.SaveAs(file);
        }
예제 #2
0
        private async void OnOpenClicked(object sender, RoutedEventArgs e)
        {
            SkeletonViewModel vm = this.DataContext as SkeletonViewModel;

            try
            {
                IFileService fileService = Services.Get <IFileService>();
                FileBase     file        = await fileService.OpenAny(PoseFile.FileType, LegacyPoseFile.FileType);

                if (file == null)
                {
                    return;
                }

                if (file is LegacyPoseFile legacyFile)
                {
                    file = legacyFile.Upgrade(vm.Race);
                }

                IViewService    viewService = Services.Get <IViewService>();
                PoseFile.Groups groups      = await viewService.ShowDialog <BoneGroupsSelectorDialog, PoseFile.Groups>("Load Pose...");

                if (groups == PoseFile.Groups.None)
                {
                    return;
                }

                if (file is PoseFile poseFile)
                {
                    await poseFile.Write(vm, groups);
                }
            }
            catch (Exception ex)
            {
                Log.Write(ex, "Pose", Log.Severity.Error);
            }
        }