2

我正在使用 Awesomium 1.6.5 来呈现我的应用程序的大部分用户界面,并注意到 CSS 加载中的一些不一致。第一次打开窗口时,CSS 将正常运行并加载样式。

然而,过了那一点,样式是否适用似乎是随机的。左侧的窗口显示样式正常运行,右侧的窗口显示样式失败。

CSS 不一致

由于这些按钮是 jQuery UI(1.10.1 和 jQuery 1.9.1),我的第一个想法是创建这些按钮的 JavaScript 没有被执行,所以我将它从页面的 HTML 内部移动到应用程序,确保在用户看到页面之前执行 JavaScript。

这没有任何区别,问题仍然存在。

所有 CSS(我的样式表和 jQuery UI 的样式表)在WebCore初始化时通过加载WebCoreConfig.CustomCSS,然后传递给WebCore. 正在呈现的页面在其 HTML 中确实有一些样式(使用<style>标签)。

设置窗口类是一个单例,它处理实际 WPF 窗口的实例化和管理,每次SettingsWindow.Show()调用该方法时,都会关闭 WPF 窗口的先前实例(与 Awesomium 一起WebControl)并创建一个新实例。创建此实例后,将执行相应的 JavaScript。这是Initialise()功能:

// Host is an instance of AwesomiumHost, a WPF window containing an Awesomium
// WebControl control.
public static void Initialise()
{
    if (Host != null)
    {
        Host.webControl.Close();
        Host.Close();
    }

    Host = new AwesomiumHost(Resources.Markup.SettingsPage)
    {
        Width = 810,
        Height = 640,
        Title = "Settings"
    };

    var webControl = Host.webControl;

    webControl.ExecuteJavascript(Markup.jQuery);
    webControl.ExecuteJavascript(Markup.Cufon);
    webControl.ExecuteJavascript(Markup.CufonOpenSans);
    webControl.ExecuteJavascript(
        "Cufon.replace('.title, .section-hdr', { "
            + "color: '-linear-gradient(#555, #222)'"
        + " }); "
        + "Cufon.replace('.text');"
    );
    webControl.ExecuteJavascript("$(function() {"
        + "$( '#host-choice' ).buttonset();"
        + "$( '#backup-choice' ).buttonset();"
    + "});");
    webControl.ExecuteJavascript(
        "Cufon.replace('.title', { "
            + "color: '-linear-gradient(#555, #222)'"
        + " }); "
        + "Cufon.replace('.text');"
    );
    webControl.ExecuteJavascript(@"
    $(function() {
        $( '#host-choice' ).buttonset(); // Where jQuery should create the buttons
        $( '#backup-choice' ).buttonset();
    });");

    webControl.LoadCompleted += (s, e) =>
        webControl.ExecuteJavascript(
        "$('#x').click();");
    // Sets the state of the "No" button (shown in image) to "pressed."
}

所以我问,为什么按钮加载不一致,可以做些什么来解决这个问题?

4

0 回答 0