我正在處理的項目需要使用快捷鍵訪問保存對話框,以將富文本框元素的內容轉儲到文件中。WPF命令鍵綁定的問題
我的鍵綁定和命令綁定正在XAML中完成,但後面的代碼是我認爲搞亂了。
我的鍵和命令綁定是這樣設置的。
<KeyBinding Command="local:customCommands.saveFile" Key="S" Modifiers="Ctrl"/>
...
<CommandBinding Command="local:customCommands.saveFile" Executed="launchSaveDialog"/>
而這背後的WPF窗口
private void launchSaveDialog(object sender, ExecutedRoutedEventArgs e)
{
SaveFileDialog dlg = new SaveFileDialog();
dlg.Filter = "Rich Text format(*.rtf)|*.rtf|";
dlg.DefaultExt = ".rtf";
dlg.OverwritePrompt = true;
if (dlg.ShowDialog() == true)
{
FileStream fileStream = new FileStream(dlg.FileName, FileMode.Create);
TextRange range = new TextRange(RTB.Document.ContentStart, RTB.Document.ContentEnd);
range.Save(fileStream, DataFormats.Rtf);
}
}
代碼保存對話框即使Ctrl + S鍵被按下不顯示。 如果有幫助,程序全屏運行。
此外,有沒有運行一個WinForms保存WPF應用程序的對話框內作爲一個單獨的窗口
在XAML中定義的KeyBinding和CommandBinding在哪裏?你可以通過在'launchSaveDialog'中放置一個斷點來找出它是否調用'launchSaveDialog'。 –
您絕對不會調用'launchSaveDialog',否則您會看到有關無效過濾器字符串的異常。您需要刪除尾部管道('|')字符。 –