как сделать сетку веб-браузера адаптивной к c # windows forms

#c# #webbrowser-control

#c# #webbrowser-control

Вопрос:

мне было поручено создать макет из 4 веб-браузеров, которые позже можно было бы использовать для камер видеонаблюдения.

часть веб-браузера была простой, но я застрял в том, чтобы сделать ее адаптивной, потому что, когда вы запускаете ее и разворачиваете программу, разрешение веб-браузеров остается неизменным. и поскольку эта программа будет работать на большом плоском экране, она должна соответствовать разрешению.

я просмотрел весь Интернет и не нашел решения. я пробовал привязку, но когда я делаю это и увеличиваю программу, браузеры начинают перекрывать друг друга. я попытался поместить их в сетку потоков и сетку таблиц. другие вещи, которые я нашел, были «это.AutoSize = true;» но я немного новичок в c # forms и не понимаю этого.

кто-нибудь может помочь?

код и несколько фотографий того, что происходит
как это сейчас

что происходит при увеличении

код:

 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace webspace
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            webBrowser1.Navigate("www.nos.nl");
            webBrowser2.Navigate("www.google.com");
            webBrowser3.Navigate("www.facebook.com");
            webBrowser4.Navigate("www.google.com/maps");
            this.AutoSize = true;
            
        }
        private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
        {
            this.Text = e.Url.ToString()   "is loading...";
        }

        private void webBrowser2_Navigating(object sender, WebBrowserNavigatingEventArgs e)
        {
            this.Text = e.Url.ToString()   "is loading...";
        }

        private void webBrowser3_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            this.Text = e.Url.ToString()   "is loading...";
        }

        private void webBrowser4_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            this.Text = e.Url.ToString()   "is loading...";
        }

        private void webBrowser2_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {

        }

        private void webBrowser3_DocumentCompleted_1(object sender, WebBrowserDocumentCompletedEventArgs e)
        {

        }
    }
}
  

Ответ №1:

Иметь макет, представляющий собой два разделенных Orientation=Horizontal контейнера, внутри другого разделенного контейнера Orientation=Vertical (или наоборот, две вертикали по одной с каждой стороны от горизонтали)

При изменении размера формы установите для всех разделителей SplitContainer соответствующие расстояния до 50% от ширины / высоты.. Если пользователь не настроил их (в этом случае решите, что делать, например, пропорционально изменить размер, тем самым позволяя пользователю иметь некоторые представления больше, чем другие)

Сделайте элементы управления веб-браузером закрепленными = заполните их панели

введите описание изображения здесь

Обратите внимание, что элемент управления WebBrowser уже довольно устарел и, вероятно, его следует заменить WebView2 (Edge на основе Chrome)