using System.Windows;
using System.Windows.Interop;

namespace CefSharp.MinimalExample.Wpf
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            Loaded += OnMainWindowLoaded;
        }

        private void OnMainWindowLoaded(object sender, RoutedEventArgs e)
        {
            var hwndSource = (HwndSource)PresentationSource.FromVisual(this);

            var browser = new CustomChromiumWebBrowser(hwndSource.Handle, "github.com", 1024, 768);

            browser.LoadingStateChanged += OnBrowserLoadingStateChanged;
        }

        private void OnBrowserLoadingStateChanged(object sender, LoadingStateChangedEventArgs e)
        {
            if (e.IsLoading == false)
            {
                var browser = (CustomChromiumWebBrowser)sender;
                browser.LoadingStateChanged -= OnBrowserLoadingStateChanged;
                Dispatcher.InvokeAsync(() =>
                {
                    //Attach to visual tree
                    BrowserBorder.Child = browser;
                });
            }
        }
    }
}