0

私は 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 によってロードされたプロパティを設定する方法を知っている人はいますか? または、少なくともこの問題を回避する方法を知っていますか?

4

1 に答える 1

0

試行錯誤の結果、次のことが機能することがわかりました。

<EventSubscription("ShellCreated", ThreadOption.UserInterface)> _ 
Public Sub OnShellCreated(ByVal sender As Object, ByVal e As EventArgs)
    mShellUIExtensionService.RibbonBar.IsMinimized() = False
End Sub
于 2015-01-14T04:11:43.640 に答える