天天看點

如何用C#顯示豎排文字?

       看這個題目,應該覺的這個問題不難,剛開始我也是這麼想,可是目前我手頭上的參考資料上沒有一個介紹豎直顯示文字的,上網查資料隻發現一個有用的,可是實作起來比較麻煩,需要進行坐标轉換,旋轉,還得平移,沒辦法,為了實作下圖Y方向坐标的标注,隻好這樣了,代碼如下:

   //設定旋轉中心點

    pb_Graphics.TranslateTransform(panelRuleY.Width / 2, panelRuleY.Height / 2);

    //設定旋轉角度

    pb_Graphics.RotateTransform(90);

    //平移

    pb_Graphics.TranslateTransform(i - 19 - panelRuleY.Height / 2 + 22 - (20-panelWork.Top), -3);

    //畫文字

    pb_Graphics.DrawString(((int)(i - 19)).ToString(), font, new SolidBrush(Color.Black), 0, 0);

    //恢複為預設場景

    pb_Graphics.ResetTransform();

        本來事情有可能就這樣結束了,不過,今天在書店裡溜達,随手看到了更為直接的實作豎排文字的方法,于是趕緊買下書,回家按其方法實作了豎排文字,最新代碼如下(僅一句代碼):

        pb_Graphics.DrawString(((int)(i - 19)).ToString(), font, new SolidBrush(Color.Black), -2, i -(20 - panelWork.Top)+2, new StringFormat(StringFormatFlags.DirectionVertical));

      注意:精簡架構集不支援,我就是在精簡架構集下試這個代碼,是以沒有查到該方法!