私は Microsoft CAB フレームワークにかなり慣れていませんが、アプリケーションの読み込み中にリボン バーが設定されているため、アプリケーションのリボン バーを「再表示」できないという問題に直面しています。次のように、WorkItem コントローラーのイベントで後で再表示/表示できます。
' Show Ribbon
<EventSubscription(Constants.Events.HideRibbon, ThreadOption.UserInterface)> _
Public Sub hideRibbon(ByVal sender As Object, ByVal e As EventArgs)
mShellUIExtensionService.ShowRibbon(True)
End Sub
起動時に読み込まれるビューから上記のイベントを発行できると思っていましたが、残念ながら、アプリケーションの起動後もリボン バーは非表示のままです。
私の会社の誰かが、「ShellCreated」イベントから F1 キーをアプリケーションに送信する次のハックを使用しています (コードのどこにでもイベントの発行を見つけることができるので、予約語イベントだと思います)。 Word、Outlook などの間違ったアプリケーションに F1 キーを送信することがあります。
'This works, kind of...
'===Maximize the RibbonBar automatically on Startup===
<EventSubscription("ShellCreated", ThreadOption.UserInterface)> _
Public Sub OnShellCreated(ByVal sender As Object, ByVal e As EventArgs)
System.Windows.Forms.SendKeys.Send("^{F1}")
End Sub
上記の OnShellCreated 関数に mShellUIExtensionService.ShowRibbon(True) を追加しようとしましたが、リボン バーは非表示のままです。
問題は CAB アーキテクチャがロードされる順序にあると思われるので、アプリケーションがロードされた後に CAB によってロードされたプロパティを設定する方法を知っている人はいますか? または、少なくともこの問題を回避する方法を知っていますか?