看這個題目,應該覺的這個問題不難,剛開始我也是這麼想,可是目前我手頭上的參考資料上沒有一個介紹豎直顯示文字的,上網查資料隻發現一個有用的,可是實作起來比較麻煩,需要進行坐标轉換,旋轉,還得平移,沒辦法,為了實作下圖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));
注意:精簡架構集不支援,我就是在精簡架構集下試這個代碼,是以沒有查到該方法!