1. Список говнокодов пользователя rammara

    Всего: 1

  2. C# / Говнокод #8515

    +123

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    static public int MeasureDisplayStringWidth(Graphics graphics, string text,
                                                Font font)
    {
        const int width = 32;
    
        System.Drawing.Bitmap   bitmap = new System.Drawing.Bitmap (width, 1, 
                                                                    graphics);
        System.Drawing.SizeF    size   = graphics.MeasureString (text, font);
        System.Drawing.Graphics anagra = System.Drawing.Graphics.FromImage(bitmap);
    
        int measured_width = (int) size.Width;
    
        if (anagra != null)
        {
            anagra.Clear (Color.White);
            anagra.DrawString (text+"|", font, Brushes.Black,
                               width - measured_width, -font.Height / 2);
    
            for (int i = width-1; i >= 0; i--)
            {
                measured_width--;
                if (bitmap.GetPixel (i, 0).R != 255)    // found a non-white pixel ?
    
                    break;
            }
        }
    
        return measured_width;
    }

    Ищем размер нарисованной строки. Не моё. Нашел на codeproject.
    (Вместо MeasureCharacterRanges)

    rammara, 14 Ноября 2011

    Комментарии (13)