2014-04-16 76 views
2

我已經爲使用.chm文件的上下文相關幫助創建了wpf應用程序。點擊文本框或按鈕後,按F1,然後按下「不按事件處理」,我創建了一個上下文相關幫助。 ,但我也需要它的窗口。當窗口加載時,我可以將窗口幫助作爲xaml中的默認窗口,現在可以工作。但是,如果我使用文本框幫助,那麼我不能切換回窗口幫助,因爲我沒有包含任何事件。WPF上下文相關幫助 - 最佳實踐

對於這種情況,是使用事件唯一的可能性來包含窗口幫助?最佳做法是什麼?有沒有辦法使用窗口焦點xaml本身,或使用事件結束作爲最佳做法?

非常感謝!

+0

工具提示是不夠的,也許你的f1調用的窗口的一般幫助子窗口? –

回答

1

爲什麼不只是實施F1幫助系統?這是非常簡單的...

看看這個例子HERE。這提供了一個HelpProvider類,它爲設置HelpString的任何元素提供上下文相關幫助。這應該提供您需要的大致內容。

就你的情況而言,只需將chm文件名稱作爲你想要文件敏感的每個元素的幫助名稱即可。你可以有這樣的事情:

static private void Executed(object sender, ExecutedRoutedEventArgs e) 
{ 
    YourHelpSystem.ShowHelp(HelpProvider.GetHelpString(sender as FrameworkElement) + ".chm"); 
} 
+0

我已經有這個,並且幫助字符串被傳遞到窗口標記,但我的問題是我點擊文本框或按鈕後,然後如果我嘗試回來2窗口,它不工作。可能與將光標聚焦在窗口上有關......但我不確定這是否是最佳做法。即使這可能是一種解決方案,但我不確定是否應該爲此確實擁有事件處理程序,在xaml – drk

+0

mousedown事件是否再次設置標籤,或者您甚至可以嘗試讓窗口焦點收聽mousedown事件?或者,您可以讓應用程序捕獲所有未在較低框架元素(例如文本框)處理的F1請求,並在那裏顯示窗口的幫助文件。 – jsirr13