私はPrintDocumentを使ってページを印刷しています。ある時点で、テキストを90度回転させて印刷します。つまり、テキストを縦に印刷します。何か案は ???印刷のためにテキストを回転する
g.RotateTransform(90);
は、OnPaintでは機能しません。
私はPrintDocumentを使ってページを印刷しています。ある時点で、テキストを90度回転させて印刷します。つまり、テキストを縦に印刷します。何か案は ???印刷のためにテキストを回転する
g.RotateTransform(90);
は、OnPaintでは機能しません。
RotateTransformを呼び出すときは、座標系の終了位置に注意する必要があります。次のコードを実行すると、左端の左側に「傾斜したテキスト」が表示されます。それが表示されていない:
e.Graphics.Clear(SystemColors.Control);
e.Graphics.DrawString("Normal text", this.Font, SystemBrushes.ControlText, 10, 10);
e.Graphics.RotateTransform(90);
e.Graphics.DrawString("Tilted text", this.Font, SystemBrushes.ControlText, 10, 10);
あなたが描画面を90度(時計回り)に傾いているので、y座標は現在、代わりにアップ/ダウンの(あなたの視点から)左/右の軸に沿って移動します。大きい数字はさらに左側にあります。だから、表面の目に見える部分に傾いたテキストを移動するには、y座標減少する必要があります。デフォルトでは
e.Graphics.Clear(SystemColors.Control);
e.Graphics.DrawString("Normal text", this.Font, SystemBrushes.ControlText, 10, 10);
e.Graphics.RotateTransform(90);
e.Graphics.DrawString("Tilted text", this.Font, SystemBrushes.ControlText, 10, -40);
座標系は、表面の左上隅にそのオリゴを持って、それがあるので、 RotateTransformがサーフェスを回転させる軸です。
ここにこれを示す画像があります。
あなたは何を意味するのか「のOnPaintのために動作しない」:黒、赤はRotateTransform(35)を呼び出した後で、RotateTransformへの呼び出しの前にいるのですか? – Lucero
あなたは人生の救い主です!ありがとう!!! ちょっとしたことを明確にするために、回転させずに好きなものを描画してから、次のように入力します。 e.Graphics.RotateTransform(90); とそれ以降のすべてが回転します。 –