В моем коде privatefontcollection не может утилизировать объект
Привет ,
при загрузке внешнего шрифта с помощью языка c# появляется следующая ошибка
Ниже приведен мой кодЦитата:ошибки:- система.Во время выполнения.InteropServices.SEHException: внешний компонент создал исключение
private float MeasureString(string fontName, float fontSize, string text) { const float offSet = -20f; var fontFamily = GetFontFamily(fontName); var font = new Font(fontFamily, fontSize, FontStyle.Regular, GraphicsUnit.Millimeter); var bitmap = new Bitmap(1, 1); bitmap.SetResolution(96.0f, 96.0f); using(var graphic = Graphics.FromImage(bitmap)) { graphic.PageUnit = GraphicsUnit.Millimeter; var size = graphic.MeasureString(text, font, new PointF(0, 0), new StringFormat(StringFormatFlags.FitBlackBox | StringFormatFlags.DirectionRightToLeft)); return size.Width + offSet; } }Загрузка функций
private FontFamily GetPrivateFontFamily(string fontName) { PrivateFontCollection privateFonts = new PrivateFontCollection(); var directoryPath = _fontFamilySetting.Value.DirectoryPath; if (!string.IsNullOrEmpty(directoryPath) && Directory.Exists(directoryPath)) { foreach (string file in Directory.EnumerateFiles(_fontFamilySetting.Value.DirectoryPath)) { privateFonts.AddFontFile(file); } return privateFonts.Families.First(f => f.Name == fontName); } return null; }Может ли кто-нибудь, пожалуйста, помочь нам решить эту ошибку
Что я уже пробовал:
Да, я попробовал код.
using(var graphic = Graphics.FromImage(bitmap))
оператор где с помощью оператора автоматически освобождается объект но это не происходит в моем коде
CHill60
Что заставляет вас думать, что объект не был удален - ошибка относится к исключению из внешнего компонента. Что говорит остальная часть исключения и в какой строке выбрасывается исключение?