4

通常、次のように TActionMainMenuBar または TMainMenu のフォントを変更できます。

Screen.MenuFont.Name := 'Calibri';

Vcl スタイルを使用する場合、StyleHook がコンポーネントに登録されている場合、これはもはや不可能です。Bitmap Style Designer (以前は Vcl Style Designer と呼ばれていました) に入り、MenuItemTextNormalのフォントを変更しました。

問題は、フォントを変更しても何も起こらないことです。テキストの色を正常に変更することしかできません。

明らかに、ここに何かが欠けています。なぜ色を変更できるのにフォントを変更できないのですか?

4

1 に答える 1

5

あなたが言うように、スタイル デザイナーでMenuItemTextNormal要素 (またはその他の要素)のフォントを変更しても効果はありません。これは、Vcl スタイル エンジンが単にフォントのサイズと名前を無視し、vcl スタイル ファイルで定義されたフォントの色を使用するためです。 .

回避策として、新しいTActionBarStyleEx子孫を定義して登録し、TCustomMenuItem クラスと TCustomMenuButton クラスの DrawText メソッドをオーバーライドして、Screen.MenuFont の値を使用してメニューを描画する必要があります。

コンポーネントのフォントとサイズをカスタマイズできる新しいアクション バー スタイルを実装する新しいユニット ( Vcl.PlatformVclStylesActnCtrls) をVcl Styles Utilsプロジェクトに追加しました。TActionMainMenuBar

Vcl.PlatformVclStylesActnCtrls ユニットをプロジェクトに追加するだけで使用するには、次のScreen.MenuFontようにフォントの値を変更します。

 Screen.MenuFont.Name := 'Impact';
 Screen.MenuFont.Size := 12;

次に、 TActionManager の Style を次のように設定します

  ActionManager1.Style:=PlatformVclStylesStyle;

そして結果は

ここに画像の説明を入力

于 2012-11-09T02:02:24.960 に答える