private static void ensureArialMSFontInstalledOrIgnored() { // check if Arial Unicode MS is installed or not string fontName = "Arial Unicode MS"; bool isInstalled = false; var fontsCollection = new InstalledFontCollection(); foreach (var fontFamily in fontsCollection.Families) { if (fontFamily.Name == fontName) { isInstalled = true; } } // check if the client already clicked to "do not ask again" button bool dontAskAgainIsTrue = Settings.Instance.FontMissingWindowDoNotAskAgain; // show missing font form if (!isInstalled && !dontAskAgainIsTrue) { MissingFontDialogViewModel vm = new MissingFontDialogViewModel(); MissingFontDialogView iqf = new MissingFontDialogView(vm); iqf.Owner = Application.Current.MainWindow; iqf.ShowDialog(); if (vm.InstallFont) { string path = Path.GetTempPath(); string fileName = Path.Combine(path, "arial-unicode-ms.ttf"); if (File.Exists(fileName)) { File.Delete(fileName); } using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("MemoQ.VideoPreview.Fonts.arial-unicode-ms.ttf")) using (Stream writer = new FileStream(fileName, FileMode.Create)) stream.CopyTo(writer); Process.Start(fileName).WaitForExit(); File.Delete(fileName); } if (vm.IgnorePermamently) { Settings.Instance.FontMissingWindowDoNotAskAgain = true; Settings.Instance.SaveSettings(); } } }
public MissingFontDialogView(MissingFontDialogViewModel vm) { InitializeComponent(); DataContext = vm; }