#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)