Прежде всего следует помнить, что IE 6 рисует границу в одиночку, если вы укажете
< DOCTYPE HTML > или
тело {границы стиля: вставка; границы ширина: 2px; Маржа: 0px; }
Но это больше не работает с новыми версиями IE.
Так что, если вы рисуете границу в C# и указать DOCTYPE вы должны установить
HTML, тело {границы: 0; }
иначе вы имеете две границы в IE 6.
Решения Hans (для установки WS_BORDER) производит некрасивую черную границу.
Если вы хотите затонувшее 3D границу самым простым решением является следующее:
protected override CreateParams CreateParams
{
get
{
CreateParams i_Parms = base.CreateParams;
i_Parms.ExStyle |= 0x200; // WS_EX_CLIENTEDGE
return i_Parms;
}
}
Проблема заключается в том, что затонувший 3D граница использовалась до Windows 2000. Но все изменилось с XP, где UXTheme. DLL рисует все элементы управления, а не старый добрый USER32.DLL. Все флаги управления изображением в User.h использовались до Windows 2000 и с тех пор не выпускают совместимую с Theme картину.
Итак, как получить границу, которая выглядит как граница раздела темы XP/Windows 7 в ListBox, ListView, TreeView и т. Д. (Тонкая синяя или зеленая линия) и изменяет цвет при смене темы?
легко раствор, чтобы вставить ListBox в конструкторе форм в VS в том месте, где вы хотите, чтобы браузер появляться, а затем записать в форме:
protected override void OnLoad(EventArgs e)
{
....
listBox.IntegralHeight = false;
webBrowser.Parent = listBox;
webBrowser.Dock = DockStyle.Fill;
}
Это делает браузер быть ребенком список. В списке отображается его граница, а браузер внутри - содержимое Html.
Это прекрасно работает и выглядит так же, как и другие элементы управления, но небольшим недостатком является то, что изменение размера формы мерцает больше, потому что теперь есть еще один элемент управления.
Идеальное решение заключается в том, чтобы вырезать DrawThemeBackground или DrawThemeEdge для рисования границы вручную или для получения цвета границы с помощью GetThemeColor и нарисовать границу с помощью System.Drawing.Graphics.DrawRectangle() Но это довольно неуклюжий, Попробуй. (Дополнительно вы должны были бы реализовать резерв, если пользователь отключил темы)
Это способ общения :) Но почему у всех элементов управления есть пограничный стиль, кроме веб-браузера? – Pygmy
Веб-браузер особенный :-) – Kugel
Это способ управления любым элементом управления, который не имеет свойства стиля границы. Я использовал его только на RichTextBoxes и ComboBoxes. – Isuru