AcManager.Pages.Dialogs.LiveryIconEditor.CreateNewIcon C# (CSharp) Метод

CreateNewIcon() приватный Метод

private CreateNewIcon ( ) : System.Threading.Tasks.Task
Результат System.Threading.Tasks.Task
        private async Task CreateNewIcon() {
            var size = new Size(64, 64);
            Result.Measure(size);
            Result.Arrange(new Rect(size));
            Result.Dispatcher.Invoke(DispatcherPriority.Render, EmptyDelegate);

            await Task.Delay(100);
            if (Skin == null) return;

            // TODO: save style?
            var bmp = new RenderTargetBitmap(64, 64, 96, 96, PixelFormats.Pbgra32);
            bmp.Render(Result);

            if (Model.Value != @"0" && Model.Value != Skin.SkinNumber &&
                    ShowMessage(string.Format(AppStrings.LiveryIcon_ChangeNumber_Message, Model.Value), AppStrings.LiveryIcon_ChangeNumber_Title,
                            MessageBoxButton.YesNo) == MessageBoxResult.Yes) {
                Skin.SkinNumber = Model.Value;
            }

            try {
                bmp.SaveAsPng(Skin.LiveryImage);
            } catch (IOException e) {
                NonfatalError.Notify(AppStrings.LiveryIcon_CannotChange, AppStrings.LiveryIcon_CannotChange_Commentary, e);
            } catch (Exception e) {
                NonfatalError.Notify(AppStrings.LiveryIcon_CannotChange, e);
            }
        }