1

DevEx ドロップダウン ボタンを作成しようとしています。残念ながら、私は理解できない2つの問題に直面しています:

1) ポップアップ メニューが正しくスキンされません。つまり、「Office 2010 Blue」としてスキンされません。私が使用しているコードを以下に示します。

        private void InitializeSendToPricingSheetButton()
        {
            var barManager = new BarManager();
            if (barManager.Controller == null) barManager.Controller = new BarAndDockingController();
            barManager.Controller.PaintStyleName = "Skin";
            barManager.Controller.LookAndFeel.UseDefaultLookAndFeel = false;
            barManager.Controller.LookAndFeel.SkinName = "Office 2010 Blue";

            barManager.ItemClick += HandleSendToPricingSheetClick;
            barManager.Items.AddRange(new[] { new BarButtonItem(barManager, "Foo"), new BarButtonItem(barManager, "Bar"), new BarButtonItem(barManager, "Baz") });

            var popupMenu = new PopupMenu { Manager = barManager };
            foreach (var barItem in barManager.Items) popupMenu.ItemLinks.Add((BarItem)barItem);
            popupMenu.ItemLinks[1].BeginGroup = true;

            dropDownButtonSendToPricingSheet.DropDownControl = popupMenu;
        }

2) このボタンはフォームにあります。フォームがフォーカスを失った場合 (たとえば、Firefox をクリックした場合)、ポップアップ メニューは引き続き上部に表示されます。クリックするまで消えません。

どんな提案でも歓迎です。DevEx の狂気に対処するのを手伝ってくれてありがとう。

4

3 に答える 3

2

2 番目の質問に対する解決策があります。

以下のように、ドロップダウン ボタンのイベント ハンドラを追加する必要があります。

dropDownButton1.LostFocus += new EventHandler(HidePopUp);

ハンドラー メソッドは次のようになります。

private void HidePopUp(object sender,object e)
        {
            dropDownButton1.HideDropDown();
        }
于 2012-09-30T14:49:56.017 に答える
1

2 番目の質問では、次のようにバー マネージャー プロパティに値を割り当てる必要があります。

BarManager manager = new BarManager();
manager.Form = this; // refers to current form 

以下のリンクを参照して ください https://www.devexpress.com/Support/Center/Question/Details/Q274641

于 2014-05-19T15:49:49.160 に答える
0

おそらく DefaultLookAndFeel を使用する方が簡単です

このカンプをフォームに追加し、使用するテーマを設定します。コンポーネントごとにテーマを設定する必要はありません。

defaultLookAndFeel1.LookAndFeel.SetSkinStyle("Office 2010 Blue");
于 2012-09-26T10:52:11.000 に答える