phy*_*ler 20 c# chm wpf interop winforms
我已经在WPF应用程序上工作了一段时间,现在是时候将CHM格式的帮助文档附加到它了.
可惜!HelpProvider是在Winforms中显示CHM文件的标准方法,它已经神奇地消失了,并且在WPF中没有对应物.我一直在尝试使用WindowsFormsHost来生成一个新的控件,所以我实际上可以显示帮助,但实质上它只是抓住了整个UI的控制权.
更多细节:我有一个我想要的菜单项,当点击时,打开CHM文件.
首先我设置了WindowsFormsHost ......
host = new System.Windows.Forms.Integration.WindowsFormsHost();
helpForm = new System.Windows.Forms.Control();
host.Child = helpForm;
host.Visibility = System.Windows.Visibility.Hidden;
this.grid1.Children.Add(host);
hp = new System.Windows.Forms.HelpProvider();
hp.HelpNamespace = "Somehelpfile.chm";
hp.SetHelpNavigator(helpForm, System.Windows.Forms.HelpNavigator.TableOfContents);
Run Code Online (Sandbox Code Playgroud)
然后我说,瞧,揭示自己.
private void Help_Click(object sender, RoutedEventArgs e)
{
host.Visibility = Visibility.Visible;
helpForm.Show();
hp.SetShowHelp(helpForm, true);
}
Run Code Online (Sandbox Code Playgroud)
我不确定从哪里开始.当我显示helpForm时,它会模糊/覆盖现有的UI,而我得到的只是一个灰色的空WPF窗口,没有帮助文件.
任何接受者?
Cam*_*and 27
如果您包含System.Windows.Forms.dll,您还可以执行以下操作:
System.Windows.Forms.Help.ShowHelp(null, @"help.chm");
Run Code Online (Sandbox Code Playgroud)
此外,还有一篇文章在这里增加一个上下文敏感的帮助系统,WPF.
Sco*_*son 25
叫我疯了,但你不能这样做:
System.Diagnostics.Process.Start(@"C:\path-to-chm-file.chm");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32196 次 |
| 最近记录: |