WPF şöyle metin oluşturmak için çalışıyorum. Şimdi How to: Create Outlined Text'u takip ederek biraz zor olan bir tek felç yaratabiliyorum. Gösterilmeyen özelliklerin, kontrolün tüm DP'leri olduğunu unutmayın.WPF'de metin üzerinde birden çok vuruş nasıl oluşturulur? sarı metin siyah inme, sonra sarı bir inme, sonra başka (çok ince) siyah inme ile olduğunu</p> <p><img src="https://i.stack.imgur.com/2oRjN.jpg" alt="sample text"></p> <p>Bildirimi:
protected override void OnRender(System.Windows.Media.DrawingContext drawingContext)
{
// Draw the outline based on the properties that are set.
drawingContext.DrawGeometry(Fill,
new System.Windows.Media.Pen(Stroke, StrokeThickness),
_textGeometry);
}
/// <summary>
/// Create the outline geometry based on the formatted text.
/// </summary>
public void CreateText()
{
System.Windows.FontStyle fontStyle = FontStyles.Normal;
FontWeight fontWeight = FontWeights.Medium;
if (Bold == true) fontWeight = FontWeights.Bold;
if (Italic == true) fontStyle = FontStyles.Italic;
// Create the formatted text based on the properties set.
FormattedText formattedText = new FormattedText(
Text,
CultureInfo.GetCultureInfo("en-us"),
FlowDirection.LeftToRight,
new Typeface(
Font,
fontStyle,
fontWeight,
FontStretches.Normal),
FontSize,
System.Windows.Media.Brushes.Black
);
// Build the geometry object that represents the text.
_textGeometry = formattedText.BuildGeometry(new System.Windows.Point(0, 0));
}
Benim soru, bunu nasıl alıp başka (veya birkaç diğer) inme (ler) buna eklerim edilir?
Birbirine birden fazla vuruş eklemeye ne dersiniz? Her seferinde daha küçük kalınlıkta mı? –
@codemonkey Bu işe yarayabilir ... Aynı dolguyla ancak farklı boyutlarda vuruşlarla birden fazla 'DrawGeometry' çağrısı mı öneriyorsunuz? Konturun orijinal metnin dışına çıkmasını tercih ederim, ancak bu etkiyi gerçekleştirmenin basit bir yolu olabilir. – BradleyDotNET
Neden codemonkey'in çözümüyle gitmediğinizi anlamıyorum. "İnme için orijinal metnin dışına çıkmayı tercih ederim" den ne demek istiyorsun? Yarısı içeride yarılmış mı, dışarıda mı? Eğer öyleyse, en dıştaki taslağı elde etmek için yapmanız gereken tek şey, metin geometrisinden en dıştaki çerçevenin dışına olan mesafenin iki katı kadar bir strok genişliği kullanmaktır. Daha sonra diğer tüm vuruşları üretmek için benzer bir matematik kullanırsınız ve son olarak iç kısımda inme olmadan bir dolgu yapın. – adv12