Использовать переопределение PixelsPerDip? WPF. NET 4.8 обновление от. NET 4.6 - PullRequest
1 голос
/ 28 января 2020

Мы только что обновили проект. NET 4.6 до. NET 4.8, и эта функция

Private Function MeasureTextSize(ByVal text As String, ByVal fontFamily As FontFamily, ByVal fontStyle As FontStyle, ByVal fontWeight As FontWeight, ByVal fontStretch As FontStretch, ByVal fontSize As Double) As Size

    Dim ft As New FormattedText(text, System.Globalization.CultureInfo.CurrentCulture, FlowDirection.LeftToRight, New Typeface(fontFamily, fontStyle, fontWeight, fontStretch), fontSize, Brushes.Black)
    Return New Size(ft.Width, ft.Height)
End Function

показывает следующее предупреждение

warning BC40000: 'Public Overloads Sub New(textToFormat As String, culture As CultureInfo, flowDirection As FlowDirection, typeface As Typeface, emSize As Double, foreground As Brush)' is obsolete: 'Use the PixelsPerDip override'.

С учетом этого такое модуль, как это можно исправить?

Спасибо

1 Ответ

1 голос
/ 29 января 2020

У вас есть три основных варианта:

  • Создание визуала и использование метода GetDpi для получения значения параметра pixelsPerDip:

    VisualTreeHelper.GetDpi(new Button()).PixelsPerDip
    
  • Определите статическое значение c самостоятельно, например, 1.25.

  • Игнорируйте предупреждение и используйте устаревшую перегрузку.

...