Замена устаревшей VisualBasic.Compatibility.VB6.Support - PullRequest
9 голосов
/ 15 ноября 2010

мы недавно обновили старое приложение Windows VB6 до C # .NET 4.0.Я пытаюсь заменить ссылки на класс Microsoft.VisualBasic.Compatibility.VB6.Support, поскольку Visual Basic 2010 предупреждает меня, что классы Microsoft.VisualBasic.Compatibility. * Устарели и поддерживаются только в 32-битных процессах.http://go.microsoft.com/fwlink/?linkid=160862'

Эта статья заверяет меня в том, что: «Функции в пространствах имен совместимости были созданы для устранения недостатков в версии 1.0 .NET Framework.В большинстве случаев функциональность, добавленную в более поздних версиях фреймворка, может использоваться для перезаписи функций, что приводит к повышению производительности. '

Мой вопрос: какие дополнения к более поздним версиям фреймворка мне нужно использовать, чтобы отменитьс классами Compatibility. *?Мне нужно отказаться от TwipsToPixelX, TwipsToPixelY и так далее.Кроме того, FontChangeUnderline, FontChangeSize и другие вещи, связанные со шрифтами.

Ответы [ 5 ]

8 голосов
/ 19 ноября 2010

Спасибо всем за помощь всем.Просто для продолжения, вот что я приготовил, имея дело с преобразованиями в два пикселя.

    private const float TWIPS_PER_INCH = 1440f;
    private static Form _form = new Form();
    private static Graphics _graphics = _form.CreateGraphics();

    public static float TwipsPerPixelX()
    {
        return TWIPS_PER_INCH/_graphics.DpiX;
    }

    public static double TwipsToPixelsY(double twips)
    {
        float dpiy = _graphics.DpiY;
        return twips * dpiy / TWIPS_PER_INCH;
    }

    public static double TwipsToPixelsX(double twips)
    {
        float dpix = _graphics.DpiX;
        return twips * dpix / TWIPS_PER_INCH;
    }

    public static double PixelsToTwipsY(double pixels)
    {
        float dpiy = _graphics.DpiY;
        return pixels * TWIPS_PER_INCH / dpiy;
    }

    public static double PixelsToTwipsX(double pixels)
    {
        float dpix = _graphics.DpiX;
        return pixels * TWIPS_PER_INCH / dpix;
    }

Надеюсь, что кто-то найдет это интересным и / или полезным

3 голосов
/ 15 ноября 2010

Функции, связанные со шрифтами, можно заменить достаточно легко.Например:

Function FontChangeBold(f As Font, bold As Boolean) As Font
    Dim alreadySet = (f.Style And FontStyle.Bold) = FontStyle.Bold
    If bold = alreadySet Then Return f
    If bold Then Return New Font(f, f.Style Or FontStyle.Bold)
    Return New Font(f, f.Style And Not FontStyle.Bold)
End Function

Проверяет, установлен ли нужный стиль.Если это так, он возвращает старый шрифт.В противном случае он вернет новый шрифт с тем же стилем, за исключением стиля bold, который теперь установлен в соответствии с требованием.

0 голосов
/ 20 июля 2015

Для парней из VB это работает для меня, так как я могу переключать жирный, курсив и / или подчеркивание.

Private Function SetNewFont(ByRef f As Font, Optional ByVal bToggleBold As Boolean = False, Optional ByVal bToggleItalics As Boolean = False, Optional ByVal bToggleUnderLine As Boolean = False) As Font

    Dim fs As FontStyle

    If bToggleBold = True Then
        If f.Bold = False Then
            fs = FontStyle.Bold
        End If
    Else
        If f.Bold = True Then
            fs = FontStyle.Bold
        End If
    End If

    If bToggleItalics = True Then
        If f.Italic = False Then
            fs += FontStyle.Italic
        End If
    Else
        If f.Italic = True Then
            fs += FontStyle.Italic
        End If
    End If

    If bToggleUnderLine = True Then
        If f.Underline = False Then
            fs += FontStyle.Underline
        End If
    Else
        If f.Underline = True Then
            fs += FontStyle.Underline
        End If
    End If

    Return New Font(f, fs)

End Function
0 голосов
/ 15 ноября 2010

Твипы больше не нужны.Теперь вы можете просто использовать необработанные пиксели для измерений.

Что касается шрифтов, посмотрите Font Class .

0 голосов
/ 15 ноября 2010

Вы можете создавать шрифты с разными стилями, написав new Font(oldFont, FontStyle.Underline) или new Font(oldFont, 12).

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