0

この質問はかなりDevExpress固有です。

WinFormsアプリで標準の「SkinExplorerBarView」でNavBarコントロールを使用しており、選択したナビゲーションリンクの外観を変更したいと思います。

コントロールの「ItemPressed」と「ItemActive」の外観の背景色、および各アイテムの「Pressed」の外観を変更しましたが、これらのいずれも、リンクをクリックしたときのリンクの外観には影響しませんでした

また、コントロールのLookAndFeel.UseDefaultLookAndFeelプロパティをFalseに設定しようとしましたが、どちらも役に立ちませんでした。

Rustyが提案したように、私はCustomDrawLinkイベントを実装しようとしましたが、それでも成功しませんでした。(おかしなことに、リンクを選択した後、「選択済み」ではなく「押された」状態になるので、それを使用しました):

private void nbcNavigation_CustomDrawLink(object sender, 
    DevExpress.XtraNavBar.ViewInfo.CustomDrawNavBarElementEventArgs e)
{
    if (e.ObjectInfo.State == DevExpress.Utils.Drawing.ObjectState.Pressed)
    {
        e.Appearance.BackColor = Color.FromArgb(192, 192, 255);
    }
}

CustomDrawLinkの使用例を見つけましたが、それはすべての描画を手作業で行うため、非常に苦痛でやり過ぎです。別のBackColorを使用するだけで、DevExpressの「エンジン」にリンクを描画させたい。

4

1 に答える 1

1

NavBarは、カスタマイズするのが非常に面倒です...主に、すべてのナビゲーションアイテム(私の考えではなく、スタイルの警察)に共通の外観を与えるように設計されているためです。GUIに最適なスキンスタイルの1つを選択する必要があります(スキン/ルックアンドフィールシステムを理解することは時間の価値があります)。

次に、カスタムペイントのニーズに合わせてNavBarコントロールのCustomDrawXXXイベントを使用します:)

DevXスキンデザイナーを使用して、NavBar専用のスキンを作成することもできます。

于 2010-05-18T09:44:38.737 に答える