- - PR -
C#の画像作成で文字を部分的に色を変えたい
1
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2009-01-12 19:39
C#のDrawStringで文字の左半分と文字の右半分で
色を変えたいです。 LinearGradientBrushを使えばグラデーションになってしまうので そうではなく単純にまっぷたつにして 色を変えたいのです。 ご存知の方教えて頂ければ幸いです。 | ||||||||||||||||
|
投稿日時: 2009-01-13 01:23
グラデーションのパターンはカスタマイズできるはずですが、それではダメですか?
| ||||||||||||||||
|
投稿日時: 2009-01-13 10:31
左半分をDrawString、右半分をDrawStringしてはどうですか。 右半分の書き始めの位置はMeasureStringを使って左半分の文字の幅を計測すればよいかと思います。 | ||||||||||||||||
|
投稿日時: 2009-01-13 11:47
こんにちは。
描画矩形を半分ずつクリップしながら、DrawStringすればよいかも?
| ||||||||||||||||
|
投稿日時: 2009-01-13 11:53
#質問の意味と取り違えていたかも。
「1文字の途中で左半分、右半分」という意味でしたら、私の方法はダメですね。 | ||||||||||||||||
|
投稿日時: 2009-01-13 20:11
みなさんご解答ありがとうございます。
アドバイスをいただいておいて恐縮ですが 文字を真っ二つにして色をわけたいという意味です。 Tdnr_Symさんはコードまでのせていただいて ありがとうございます。 やってみたら見事にできました。 ちなみにSetClipをクリアしたいときはどうしたらよいのでしょうか? この処理の後別の処理が待っているので それに影響がでてしまいます。 クリアではなくやはり g.SetClip(new Rectangle(0, 0, this.ClientSize.Width, this.ClientSize.Height); という方法しかございませんでしょうか? 追加ではございますかお付き合い頂ければ幸いです。 | ||||||||||||||||
|
投稿日時: 2009-01-14 09:26
こちらこそ、「文字の左半分と文字の右半分」 と書かれているのに"文字列"だと勘違いしてすみません。
影響で無いようにするには、処理前にSaveメソッドでGraphicsの状態を保存し、 処理後にRestoreメソッドで復旧するとよいと思います。 以下のような感じです。
| ||||||||||||||||
|
投稿日時: 2009-01-16 20:35
よねKENさんありがとうございます。
Restoreというのがあるのですね。 参考になりました。
|
1