Программирование WPF, XPS, NET.
Как установить шрифт из памяти в NET FrameWork.
Как внедрить в XPS документ шрифт из памяти.
AddFontMemResourceEx в WPF.
В WindowsAPI есть функция
AddFontMemResourceEx ,
которая позволяет инсталлировать в систему шрифт из памяти
приложения. В WPF шрифт задается через
URI. Как же использовать шрифт, если он был
создан в памяти. Надо получить
URI ресурса который динамически создан в
памяти.
Есть вариант сделать это через временный файл:
Uri GetMemResourceUri(byte[] in_memory_resource)
{
MemoryStream resourceStream = new MemoryStream(in_memory_resource);
string tempPath = System.IO.Path.GetTempPath() + (TempFileInd++).ToString();
FileStream tempStream = new FileStream(tempPath,
FileMode.Create,FileAccess.Write);
CopyStream(resourceStream, tempStream);
tempStream.Close();
return new Uri(tempPath);
} |
Можно сделать это и без использование временных файлов.
Uri GetMemResourceUri(byte[] in_memory_resource,int Size)
{
MemoryStream packStream = new MemoryStream();
Package pack = Package.Open(packStream,FileMode.Create,FileAccess.ReadWrite);
Uri packUri = new Uri("AnyTextBeforeColon:");
PackageStore.AddPackage(packUri, pack);
Uri packPartUri = new Uri("/SomeTextAfterSlash",
UriKind.Relative);
//PackagePart packPart =
pack.CreatePart(packPartUri, "application/vnd.ms-opentype");
PackagePart packPart = pack.CreatePart(packPartUri, "SomeTextBeforeSlash/SomeTextAfterSlash");
packPart.GetStream().Write(in_memory_resource, 0, Size);
Uri fullUri = PackUriHelper.Create(packUri,
packPart.Uri);
return fullUri;
} |
скачать код примера
|
Ассемблер. Оригинальный компилятор ассемблера х86.
Симулятор 80196.
Программный симулятор микроконтроллера Intel 80196KR. Имеет встроенный компилятор ассемблера, текстовый редактор, справочную систему. Может создавать HEX файлы.
Генератор кроссвордов. Описание алгоритм
компьютерного составления кроссвордов.
DISKEDIT
Программа позволяет просматривать и редактировать сектора дисков. Работает через прерывание INT13.
Нейронные сети. Пример программы и исходный код С++.
WPF, XPS, NET. Как установить шрифт из
памяти
Deflate. Подробное описание алгоритма декодирование
формата Дефлет. Прмер декодирования с пояснениями.
Программирование драйверов для Windows.
Общие вопросы программирования драйверов. Какими средствами пользоваться, где скачать DDK.
Программирование RS232 в Windows.
СComBase класс для программирования COM порта.
Программирование потоков в Windows.
Класс CBaseThread позволяет организовать несколько рабочих потоков.
Динамический Recordset
CDynamicRecordSet - класс модернизирует CRecordSet для более удобной работы с БД из MFC приложений.
Как сохранить, восстановить, отредактировать MBR (Master Boot
Record), boot sector, нулевой, загрузочный сектор диска при помощи утилиты debug.exe
Дачный водопровод
|