Я работаю над проектом, который позволяет рисовать объекты на карте в C#. Мы используем собственный созданный True Typed Font (.ttf). Причина этого в том, что пользователи должны иметь возможность указывать свои собственные значки для объектов, если они этого захотят.Можно ли заполнить письмо графическим классом в C#?
Шрифт (письмо) Я в настоящее время рисунок является указано на карте маркер, как вы можете видеть на изображении
Цифры нарисованы позже, но, как вы можете увидеть это ISN» t достаточно ясно из-за фона.
Что я сейчас хочу сделать, это заполнить маркер белым, а не быть прозрачным.
Обращаю маркер следующим образом:
GraphicsPath p = new GraphicsPath();
p.AddString(MarkerSymbol, markerFont.FontFamily, (int)markerFont.Style, symbolSize.Height * 0.9f, CorrectedSymbolLocation, stringFormat);
graphics.FillPath(brush, p);
Я уже пробовал некоторые вещи, как:
Region region = new Region(p);
graphics.FillRegion(new SolidBrush(Color.White), region);
Я искал в Интернете, и я нашел страницу, упоминая функцию: graphicsPath.Outline() (поэтому в моем случае p.Outline()), но C# не распознает эту функцию.
Может кто-нибудь сказать мне, возможно ли, чего я хочу попытаться достичь, и если да, то как я могу это достичь?
Свойство Graphics.Clip - это регион. Вы можете создать Region из GraphicsPath. Что позволяет создавать эффекты [вроде этого] (https: // msdn.microsoft.com/en-us/library/windows/desktop/dd183441%28v=vs.85%29.aspx). –
@ Ханс: Это то, что он уже сделал, но не то, что он хочет. Он хочет заполнить внутреннее пространство букв, например, внутри буквы «О», а не штриха. – TaW
Он принимает собственные формы букв. Интерьер, конечно, не должен быть проблемой. –