Как я могу связать шрифт с моим приложением .net winforms? - PullRequest
3 голосов
/ 18 февраля 2010

Я бы хотел использовать нестандартный шрифт для моего приложения Winnet .net 3.0.

Этот шрифт может быть установлен на некоторых компьютерах моего пользователя, но на некоторых других он явно отсутствует.

Как я могу отправить шрифт с моей программой? Нужно ли устанавливать шрифт? Если да, будет ли проблема с отсутствием прав администратора?

Ответы [ 3 ]

3 голосов
/ 18 сентября 2011

Вот статья в блоге, которую я написал, в которой показан способ встраивания шрифтов в качестве ресурсов в ваше приложение (импорт dll не требуется:).

Встраивание шрифтов в ваше приложение .Net

Вот класс, который я создаю, где происходит вся магия.Статья блога содержит инструкции и пример ее использования.

using System.Drawing;
using System.Drawing.Text;
using System.Runtime.InteropServices;
namespace EmbeddedFontsExample.Fonts
{
    public class ResFonts
    {
        private static PrivateFontCollection sFonts;
        static ResFonts()
        {
            sFonts = new PrivateFontCollection();
            // The order the fonts are added to the collection 
            // should be the same as the order they are added
            // to the ResFontFamily enum.
            AddFont(MyFonts.Consolas);
        }
        private static void AddFont(byte[] font)
        {
            var buffer = Marshal.AllocCoTaskMem(font.Length);
            Marshal.Copy(font, 0, buffer, font.Length);
            sFonts.AddMemoryFont(buffer, font.Length);
        }
        public static Font Create(
            ResFontFamily family, 
            float emSize, 
            FontStyle style = FontStyle.Regular, 
            GraphicsUnit unit = GraphicsUnit.Pixel)
        {
            var fam = sFonts.Families[(int)family];
            return new Font(fam, emSize, style, unit);
        }
    }
    public enum ResFontFamily
    {
        /// <summary>Consolas</summary>
        Consolas = 0
    }
}
3 голосов
/ 18 февраля 2010

Вам нужно будет использовать установщик, чтобы зарегистрировать шрифт на целевом компьютере. Но, возможно, вам не придется, GDI + поддерживает частные шрифты .

1 голос
/ 18 февраля 2010

На этой странице подробно объясняется, как встроить шрифт в проект winforms.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...