Как я могу расширить представление в строку заголовка в проекте JavaScript / CSS / HTML UPW?

1

Я пытаюсь расширить представление в строке заголовка проектом UWP на основе JavaScript/CSS/HTML, и я не могу понять, как получить доступ к правильным API. В образцах UWP из Github я нашел ссылку на пользовательский вспомогательный класс, написанный в c++, но ссылка, которую я делаю в классе в javascript, не работает. Здесь моя структура проекта

Изображение 174551

И вот мой javascript

(function () {
    setupPanel();
    configTitlebar();
})();

function setupPanel() {
    Windows.UI.ViewManagement.ApplicationView.preferredLaunchViewSize = { width: 700, height: 320 };
    Windows.UI.ViewManagement.ApplicationView.preferredLaunchWindowingMode = Windows.UI.ViewManagement.ApplicationViewWindowingMode.preferredLaunchViewSize;
}

function configTitlebar() {
    var titleBar = Windows.UI.ViewManagement.ApplicationView.getForCurrentView().titleBar;
    titleBar.backgroundColor = { a: 0, r: 255, g: 255, b: 255 };
    titleBar.foregroundColor = { a: 255, r: 255, g: 255, b: 255 };
    titleBar.buttonBackgroundColor = { a: 0, r: 255, g: 255, b: 255 };
    titleBar.buttonForegroundColor = { a: 255, r: 255, g: 255, b: 255 };

    var titleBarHelper = CoreViewHelpers.CoreTitleBarHelper.getForCurrentView();
    var extend = extendView.checked;
    titleBarHelper.extendViewIntoTitleBar = extend;
}

Я получаю эту ошибку, когда я пытаюсь обратиться к CoreViewHelpers

Unhandled exception at line 18, column 5 in ms-appx://3146901b-10fb-4c64-95cb-a923fbe5c04e/js/main.js
0x800a1391 - JavaScript runtime error: 'CoreViewHelpers' is not defined

Я пытаюсь получить эту информацию из своего (Microsoft) примера Github: https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/TitleBar/js

Теги:
uwp

1 ответ

2
Лучший ответ

Чтобы расширить представление в строке заголовка в проекте JavaScript UWP, вы можете создать простой компонент времени выполнения Windows и вызвать его из JavaScript. Ниже приведен подробный шаг.

В вашем решении вы можете создать компонент Runtime С# Windows,

namespace TitleBarHelper
{
    public sealed class CoreTitleBarHelper
    {
        public void ExtendViewIntoTitleBar(bool IsExtend)
        {
            var currentview = Windows.ApplicationModel.Core.CoreApplication.GetCurrentView();
            currentview.TitleBar.ExtendViewIntoTitleBar = IsExtend;
        }
    }
}

Затем в проекте WinJS UWP вы должны добавить проект компонента Windows Runtime в качестве эталонного проекта. После этого вы можете вызвать метод ExtendViewIntoTitleBar чтобы расширить представление в строке заголовка.

"use strict";
var app = WinJS.Application;
var activation = Windows.ApplicationModel.Activation;
var isFirstActivation = true;
var helper = new TitleBarHelper.CoreTitleBarHelper();
app.onactivated = function (args) {
    if (args.detail.kind === activation.ActivationKind.voiceCommand) {
        // TODO
    }
    else if (args.detail.kind === activation.ActivationKind.launch) {
        if (args.detail.arguments) {
            // TODO
        }
        else if (args.detail.previousExecutionState === activation.ApplicationExecutionState.terminated) {
            // TODO
        }
        helper.extendViewIntoTitleBar(true);
    }
  • 0
    Я добавил компонент среды выполнения C # и добавил его в качестве ссылки на мой проект WinJS, но когда я ссылаюсь на «var helper = new TitleBarHelper.CoreTitleBarHelper ();» Я получаю неизвестную ошибку во время выполнения. Есть идеи? Описание ошибки совсем не полезно, оно просто говорит, что оно неизвестно.
  • 0
    @MaxMcKinney Это странно и хорошо работает на моей стороне без каких-либо ошибок, не могли бы вы создать репро-проект и предоставить ссылку, чтобы помочь мне увидеть проблему?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню