Мы обнаружили проблему в нашем программном обеспечении, которое использует CefSharp для отображения контента на основе веб-браузера в представлениях WPF, когда фон перешел с прозрачного (в версиях до 81.3.100) на белый (83.4.20).
Легко воспроизводится. Создайте окно с светло-голубым фоном и cefSharp:ChromiumWebBrowser
:
<Window x:Class="CefSharpIssue.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:cefSharp="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf"
mc:Ignorable="d"
Title="MainWindow"
Height="200"
Width="840"
Background="LightBlue">
<Grid>
<cefSharp:ChromiumWebBrowser Name="BrowserView" Margin="10" />
</Grid>
</Window>
А затем в коде загрузите какой-нибудь HTML, который отображает текст:
using CefSharp;
using System.Windows;
namespace CefSharpIssue
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
BrowserView.IsBrowserInitializedChanged += (sender, e) =>
{
if ((bool)e.NewValue)
BrowserView.LoadHtml(
"<html><body><h1>"
+ $"CefSharpVersion {Cef.ChromiumVersion}<br>"
+ $"CefVersion {Cef.CefVersion}<br>"
+ $"CefSharpVersion {Cef.CefSharpVersion}"
+ "</h1></body></html>");
};
}
}
}
CefSharp 83.4.20:
CefSharp 81.3.100:
CefSharp 79.1.360:
CefSharp 75.1.143:
(it worked with a transparent background for as long as we've been using it. I just wanted to confirm it's change introduced in 83.4.20, not a bug that existed in one previous version)
I've tried setting the CefSettings.BackgroundColor и BrowserSettings.BackgroundColor без результатов.
Это ошибка в CefSharp, или изменить функциональность, которую я не могу найти в примечаниях к выпуску, и поэтому есть ли у кого-нибудь обходной путь (кроме использования 81.3.100, которого я действительно не хочу делать)?