問題
DevExpress社のWinForm開発プログラムを使用している場合、私は開発のためのデフォルトのスキンを使用していました。しかし、顧客のタイトルバーの背景色青に、白のタイトルテキストの色。
参照して、比較的簡単である色を変更DevExpress社のサポート皮膚の変化を取得することで、説明BackColor
してForeColor
達成することができます。しかし、後にあいまいな状況で見つかった変更は、タイトルテキストの下の低い部分の画面で発生します。
理由
初期の推測では、テキストの影でなければなりませんが、情報検索ソリューションのほとんどはで、最後に発見されないDevExpress社のサポートカスタムを表示するには、この記事のFormPainter
。最初に私は大きな負荷だと思うDrawText()
、それは持って発見した後、解決するが、関連するパラメータが見つからないDrawTextShadow()
メソッドを、それがあるべきです。
解きます
解決策は単純で、書き換えることがあるDrawTextShadow()
任意のシェーディングなしに、ライン上の空のメソッドの方法を。
public class ReplaceFontFormPainter : FormPainter
{
public ReplaceFontFormPainter(Control owner, ISkinProvider provider) : base(owner, provider)
{
}
// 不再绘制标题文字阴影。
protected override void DrawTextShadow(GraphicsCache cache, AppearanceObject appearance, Rectangle bounds)
{
}
}
あなたは、フォーム、オーバーロードの形式に変更する必要がCreateFormBorderPainter()
作成した独自のものを使用し、方法をFormPainter
。
public partial class MainForm : XtraForm
{
protected override FormPainter CreateFormBorderPainter() => new ReplaceFontFormPainter(this, LookAndFeel);
}
最終結果: