Used code I found on SO to use the COM based Acrobat Reader to display PDF via hosting in a WindowsFormsHost.
It displays the PDF fine. Two problems:
When I load the PDF the control AxAcroPDFLib.AxAcroPDF takes focus
I want focus to remain on the prior
When AxAcroPDFLib.AxAcroPDF has focus it eats the Hot Key (N)
The ALT key does not even underline the N. Even if the user selects the AxAcroPDFLib.AxAcroPDF I would like the Hot Keys to work.
I understand this is COM and Adobe in WPF and there may not be an answer. If there is a free or cheap WPF control to view PDF I would be happy to go down that path. This is for a commercial application so it has to be free (or cheap) for commercial use.
<Button Click="Button_Click">_Next</Button>
<WindowsFormsHost Name="windowsFormsHost1" Margin="1" />
UserControl1 UC = new UserControl1(@"C:\temp\1000001.pdf");
this.windowsFormsHost1.Child = UC;
public UserControl1(string filename)
{
InitializeComponent();
this.axAcroPDF1.LoadFile(filename);
}
This does display PDF. In the production application I display various PDFs based on used actions.
What Hans said. Acrobat appears to be eating key strokes and there is nothing I can do about it.
my hacked solution for dealing with this is add a delay before enabling the panel. Obviously you want to add the minimum delay possible but too little and with the wrong file it will nick the focus again.
No idea if it fits the needs of anyone reading this: I just found a way around my version of this problem (got a textbox for inputs and want it to regain focus after loading a pdf with AxAcroPDFLib.AxAcroPDF).
My solution was this:
Works for me!
This works for me:
Basically '.ContainsFocus' becomes True once the PDF document is loaded. Monitor this value in a quick timer (~200ms), and reFocus to another control if needed. Not Ideal, but it works reliably.