0

ユーザーコントロールを作成しているアプリケーションがあり、そのために、次のようなフォントを再利用するクラスを定義しました。

public sealed class MyFonts
{       
    private static Font Tahoma7Regular = new Font("Tahoma", 7, FontStyle.Regular);
    private static Font Tahoma9Regular = new Font("Tahoma", 9, FontStyle.Regular);
    private static Font Tahoma9Bold = new Font("Tahoma", 9, FontStyle.Bold);       

    public static Font ChannelText = new Font("Tahoma", 12, FontStyle.Bold);       
    public static Font ClockText = Tahoma7Regular;
    public static Font HelpText = Tahoma9Regular;       
    public static Font RollFieldText = Tahoma9Bold;      

}

それを改善する方法はありますかBrushes、逆コンパイラツールでクラスを見ましたが、彼らはThreadData私が知らないと呼ばれるものを使用していますが、簡単にするためにこのコードも改善できますか?

4

3 に答える 3

0

これらの多くのオブジェクトを作成する前に、本当に必要かどうかを分析してください。ほとんどのコントロールには、Font プロパティがあります (既定値があります)。新しいオブジェクトを作成するのではなく、そこに値を設定するだけです。

于 2012-08-07T08:41:36.423 に答える
0

ThreadData は、スレッド間でデータを共有する何らかの形式のメカニズムのように聞こえます。

Brushes クラスを見てみましょう。

public static Brush MediumAquamarine { get; }

上記のようになるように、クラスを少し調整してください。私の意見では、よりきれいに見えます。

于 2012-08-07T08:41:45.043 に答える
0

ユーザーコントロールを構築している場合は、静的フィールドを使用しないでください。ユーザーコントロールの主な目的は再利用できるようにすることなので、フォントなどのプロパティに固定値を使用したくありません。これらのプロパティは、usercontrol の親によって設定されます。

したがって、書きたいのはプロパティです ( のような属性を使用するのDescriptionも便利です):

[Category("Appearance"), Description("Gets or sets the text channel font.")]
[Browsable(true)]
public Font ChannelFont { get; set; }

[Category("Appearance"), Description("Gets or sets the text clock font.")]
[Browsable(true)]
public Font ClockFont { get; set; }
...
于 2012-08-07T09:00:59.623 に答える