我正在处理的项目需要使用快捷键访问保存对话框,以将富文本框元素的内容转储到文件中。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',否则您会看到有关无效过滤器字符串的异常。您需要删除尾部管道('|')字符。 –