Jak wyświetlić najlepiej zawartość WebView2 z jednego programu do drugiego programu

0

Jak w temacie, Jak najlepiej to zrobić?

0

Chętnie pomogę, ale potrzebuję więcej szczegółów. To są twoje programy? Czym jest ta zawartość WebView2? Najprostsza odpowiedź to w obu programach mieć WebView2 i wyświetlić tą samą zawartość 🤔

0

na jednym monitorze jest program który wczytuje pliki html na drugim monitorze ma byc drugi program który wyswietla to samo co pierwszy. Rozne pliki html zmieniaja sie po kliknieciu na listview. Jak poinformowac drugi monitor ze na pierwszym zaladowal sie inny plik html

0

Dzielić to na dwie aplikację nie ma sensu dla takiej funkcjonalności. Zrób sobie dwa okna i pierwsze okno automatycznie otwierałoby drugie. Robiłem coś takiego w WinForms, więc nie jestem pewny, czy się przydam do czegoś w WPF, bo to kompletnie inna technologia. Na chłopski rozum:

GŁÓWNE OKNO

public partial class MainWindow : Window
{
  private SecondWindow _sw;

  public MainWindow()
  {
    InitializeComponent();
    _sw = new SecondWindow();
    _sw.Show();
  }

  private void ButtonClick()
  {
    // Tutaj przypisujesz zawartość WebView2 dla okna pierwszego oraz drugiego
    _sw.SetWebViewData("<html></html>");
  }
}

DRUGIE OKNO

public partial class SecondWindow : Window
{
  public SecondWindow()
  {
    InitializeComponent();
  }

  public void SetWebViewData(string html)
  {
    // Tutaj przypisujesz zawartość "html" do WebView2
  }
}

Pisane z głowy, nie wiem czy nie potrzeba tam jakiś refreshów porobić. Można to też jeszcze eventem załatwić, ale chyba nie ma potrzeby, aby drugie okno cały czas "słuchało" zmian.

2

Musiałbyś użyć jakiejś komunikacji międzyprocesowej - tu masz wypisane możliwe sposoby https://pl.wikipedia.org/wiki/Komunikacja_mi%C4%99dzyprocesowa polecam gRPC.
Ewentualnie skoro to tak naprawdę przeglądarki to mogą wyświetlać stronę która będzie połączona z backendem i będzie się odświeżać gdy dostanie komunikat z serwera (przez socket, short lub long polling), czyli zamiast komunikacja A->B możesz zrobić A<->Server + B<->Server.

Ale jaki sens żeby to były dwie osobne aplikacje? Czemu nie mogą to być dwa okna tej samej aplikacji?

1 użytkowników online, w tym zalogowanych: 0, gości: 1