首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WPF UserControl-预加载UserControl

WPF UserControl-预加载UserControl
EN

Stack Overflow用户
提问于 2018-05-31 15:07:40
回答 1查看 416关注 0票数 0

我有一个MainWindow和4个UserControls。通过将DataContext切换到我的UserControls,我可以拥有一个具有多个“页面”的应用程序。在每个UserControl中,我都有一个显示PowerPoint的webBrowser控件(所以-> 4uc=4ppt)。我现在的问题是,当我切换我的DataContext (切换页面)时,我必须再次在我的webBrowser中加载(调用导航方法)整个ppt,这需要一些时间。我该如何解决这个问题呢?

提前感谢:))

阿德里安

编辑代码

MainWindow.xaml

代码语言:javascript
复制
<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>

// ...

代码语言:javascript
复制
<ContentControl Content="{Binding}"></ContentControl>

MainWindow.xaml.cs (我这样调用页面切换)

代码语言:javascript
复制
 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时,我只想打开一次):

代码语言:javascript
复制
private void UserControl_Loaded(object sender, RoutedEventArgs e)
    {
        powerPointBrowser1.Navigate("somePPTfile.pptx");
        powerPointBrowser1.LoadCompleted += powerPointBrowser1_LoadCompleted;
    }

我希望我说得很清楚:S

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50618596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档