File: DependencyObjectExtensions.cs
Web Access
Project: src\src\EditorFeatures\Core.Wpf\Microsoft.CodeAnalysis.EditorFeatures.Wpf_a0rtafw3_wpftmp.csproj (Microsoft.CodeAnalysis.EditorFeatures.Wpf)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
 
using System.Windows;
using System.Windows.Documents;
using Microsoft.VisualStudio.Text.Classification;
using Microsoft.VisualStudio.Text.Formatting;
 
namespace Microsoft.CodeAnalysis.Editor.Shared.Extensions;
 
internal static class DependencyObjectExtensions
{
    public static void SetTextProperties(this DependencyObject dependencyObject, TextFormattingRunProperties textProperties)
    {
        dependencyObject.SetValue(TextElement.FontFamilyProperty, textProperties.Typeface.FontFamily);
        dependencyObject.SetValue(TextElement.FontSizeProperty, textProperties.FontRenderingEmSize);
        dependencyObject.SetValue(TextElement.FontStyleProperty, textProperties.Italic ? FontStyles.Italic : FontStyles.Normal);
        dependencyObject.SetValue(TextElement.FontWeightProperty, textProperties.Bold ? FontWeights.Bold : FontWeights.Normal);
        dependencyObject.SetValue(TextElement.BackgroundProperty, textProperties.BackgroundBrush);
        dependencyObject.SetValue(TextElement.ForegroundProperty, textProperties.ForegroundBrush);
    }
 
    public static void SetDefaultTextProperties(this DependencyObject dependencyObject, IClassificationFormatMap formatMap)
        => dependencyObject.SetTextProperties(formatMap.DefaultTextProperties);
}