2017-09-13 3 views
1

J'ai une instance DotNetBrowser définie dans un fichier XAMLCréer WPF BrowserView défini en XAML avec BrowserContext personnalisé

<Grid> 
    <wpf:WPFBrowserView x:Name="BrowserView"></wpf:WPFBrowserView> 
</Grid> 

L'application est utilisée par plusieurs personnes, ce qui est à l'origine des problèmes en raison de la question abordée ici:

Chromium profile directory is already used/locked by another browser

Est-il possible d'utiliser XAML pour définir le contrôle du navigateur et affecter encore un contexte personnalisé à l'instance du navigateur?

Répondre

2

Est-il possible d'utiliser XAML pour définir le contrôle du navigateur tout en attribuant un contexte personnalisé à l'instance du navigateur?

Non, je crains que ce ne soit pas le cas.

La propriété Browser de la classe WPFBrowserView ne dispose pas d'un setter public afin que vous devez créer la coutume Browser et le BrowserContext programme:

BrowserContextParams params1 = new BrowserContextParams("C:\\my-data1"); 
BrowserContext context1 = new BrowserContext(params1); 
Browser browser1 = BrowserFactory.Create(context1); 

XAML ne supporte rien comme appeler BrowserFactory.Create(context1).

0

Malheureusement, le BrowserContext personnalisé ne peut être configuré que si les codes Browser et WPFBrowserView ont été créés à partir du code source.

L'approche possible est d'enrouler WPFBrowserView et son initialisation non par défaut dans un contrôle personnalisé qui gère l'instanciation et la suppression du WPFBrowserView, de rendre ce contrôle exposer toutes les propriétés nécessaires, puis l'insérer dans votre XAML.