我有一个MainWindow和4个UserControls。通过将DataContext切换到我的UserControls,我可以拥有一个具有多个“页面”的应用程序。在每个UserControl中,我都有一个显示PowerPoint的webBrowser控件(所以-> 4uc=4ppt)。我现在的问题是,当我切换我的DataContext (切换页面)时,我必须再次在我的webBrowser中加载(调用导航方法)整个ppt,这需要一些时间。我该如何解决这个问题呢?
提前感谢:))
阿德里安
编辑代码
MainWindow.xaml
<Window.Resources>
<DataTemplate x:Name="Page1Template" DataType="{x:Type viewmodels:Page1Model}" >
<views:Page1 DataContext="{Binding}"/>
</DataTemplate>
<DataTemplate x:Name="Page2Template" DataType="{x:Type viewmodels:Page2Model}">
<views:Page2 DataContext="{Binding}"/>
</DataTemplate>
<DataTemplate x:Name="Page3Template" DataType="{x:Type viewmodels:Page3Model}">
<views:Page3 DataContext="{Binding}"/>
</DataTemplate>
<DataTemplate x:Name="Page4Template" DataType="{x:Type viewmodels:Page4Model}">
<views:Page4 DataContext="{Binding}"/>
</Window.Resources>// ...
<ContentControl Content="{Binding}"></ContentControl>MainWindow.xaml.cs (我这样调用页面切换)
private void menuBtn1_Click(object sender, RoutedEventArgs e)
{
DataContext = new Page1Model();
}
private void menuBtn2_Click(object sender, RoutedEventArgs e)
{
DataContext = new Page2Model();
}
private void menuBtn3_Click(object sender, RoutedEventArgs e)
{
DataContext = new Page3Model();
}
private void menuBtn4_Click(object sender, RoutedEventArgs e)
{
DataContext = new Page4Model();
}比方说我的UserControl1:(每次ppt再次打开时,当我调用UC1时,我只想打开一次):
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
powerPointBrowser1.Navigate("somePPTfile.pptx");
powerPointBrowser1.LoadCompleted += powerPointBrowser1_LoadCompleted;
}我希望我说得很清楚:S
https://stackoverflow.com/questions/50618596
复制相似问题