I cannot get a WindowsForms user control hosted in WPF/C# to show() PDF please help
i have wpf c# .net 4.0. solution in vs2010 on windows 7. contains wpf hosting project , windowsformscontrol project i've created usercontrol should display acrobat cacroavdoc object interop.acrobat sdk com object (latest).
the wpf project contains code open file creates new windowsformsusercontrol (pdfviewercontrol) in turns opens file, usercontrol added windowsformhost object in wpf main form.
private void openfile(fileitem file)
{
if (file.extension.tolower() == ".pdf")
{
system.windows.forms.integration.windowsformshost host = new system.windows.forms.integration.windowsformshost();
windowsformscontrols.pdfviewercontrol viewer = new windowsformscontrols.pdfviewercontrol();
viewer.show();
boolean result = viewer.openfile(file.path);
if (!result)
{
messagebox.show("error opening document");
}
host.child = viewer;
this.pdfviewwpf.children.add(host);
viewer.show();
}
}
the pdfviewercontrol openfile method contains code , returns true when opening pdf document via openinwindowex.
public boolean openfile(string filename)
{
cacroavdoc doc = activator.createinstance(type.gettypefromprogid("acroexch.avdoc")) cacroavdoc;
bool res = doc.openinwindowex(filename, this.handle.toint32(), 2, 1, 0, (short)acrobat.pdviewmode.pdusebookmarks, (short)acrobat.avzoomtype.avzoomfitwidth, 0, 0, 0);
return res;
}
unfortunately though pdf cannot seen in wpf host object. if place label on windows forms user control, label show in wpf. seems openinwindowex not loading pdf object onto user control. perhaps need resize method , event?
i cannot locate object on pdfviewercontrol user control resembles pdf document through debug.
any help/pointers appreciated.
this.handle.toint32() have seemingly valid value (ie window handle).
this.pdfviewwpf xaml <grid>
dominic
on further testing, found above code work, host or viewer or doc object disappear after routine finished. placed label on usercontrol , noticed flicker on crseen draw capture on camtasia result can viewed here. http://www.screencast.com/t/z49gutb3xt
given label still around after file open routine completes suggests host , viewer objects still exposed, doc object resizes 0 height , width or plain gone.
without label, same result.
any thoughts on how retain display of cacroavdoc object appreciated.
More discussions in Acrobat SDK
adobe
Comments
Post a Comment