DSOFramer控件使用注意事项

1.引用dll==>AxInterop.DSOFramer.dll
==>Interop.DSOFramer.dll
==>WindowsFormsIntegration
==>System.Windows.Forms
2.设置嵌入互操作类型为False
引用-->引用的dll(AxInterop.DSOFramer.dll,Interop.DSOFramer.dll)-->属性-->找到嵌入互操作类型选成False
3.设置项目生成平台x86(不然会报错)
4.xaml代码:

<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Button Height="30" Width="80" x:Name="btn_Open" Click="btn_Open_Click"/>
<WindowsFormsHost Grid.Row="1" x:Name="wfHost" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<dsoFramer:AxFramerControl x:Name="Framer" />
</WindowsFormsHost>
</Grid>

cs代码

设置属性:
Framer.Menubar = false;// 
Framer.Titlebar = false;// 隐藏列头
Framer.Toolbars = false;// 隐藏工具栏
设置打开方法:
private void SetDocment(string filePath)
{
Framer.FrameHookPolicy = dsoFrameHookPolicy.dsoSetOnFirstOpen;
if (String.IsNullOrEmpty(filePath))
return;
try
{
Framer.Select();
Framer.Open(filePath);
}
catch (Exception)
{
MessageBox.Show("打开失败");
}

this.Dispatcher.BeginInvoke(DispatcherPriority.Background, (DispatcherOperationCallback)delegate(object o)
{
if (Framer != null)
{
Framer.Activate();
}
return null;
}, null);
Framer.Activate();
}
private void btn_Open_Click(object sender, RoutedEventArgs e)
{
SetDocment(AppDomain.CurrentDomain.BaseDirectory + "2016-05-20估值表对账结果.xlsx");
} 
原文地址:https://www.cnblogs.com/zbfamily/p/8400196.html