Почему [Windows::Foundation::Metadata::WebHostHidden] добавляется по умолчанию в пользовательские элементы управления WinRT C++/CX?

Когда я создаю новый элемент управления в проекте WinRT C++/CX, атрибут класса [Windows::Foundation::Metadata::WebHostHidden] добавляется по умолчанию в Visual Studio 2012.

Пример:

namespace WindowsRuntimeComponent1
{
    [Windows::Foundation::Metadata::WebHostHidden]
    public ref class MyUserControl sealed
    {
    public:
        MyUserControl();
    };
}
  • Есть ли документально подтвержденная причина этого? (Я сделал домашнее задание, но не смог найти эту информацию)
  • Насколько мне известно, использование атрибута [WebHostHidden] делает класс невидимым для проектов WinRT HTML/Javascript. Означает ли это, что я не могу создать элемент управления на C++/CX, который можно использовать в Javascript?

person yms    schedule 03.10.2012    source источник


Ответы (1)


Насколько мне известно, использование атрибута [WebHostHidden] делает класс невидимым для проектов WinRT HTML/JavaScript.

Это правильно: этот атрибут скрывает тип в проекции JavaScript, поэтому из JavaScript это как будто типа не существует.

Означает ли это, что я не могу создать элемент управления на C++/CX, который можно использовать в JavaScript?

Вы не можете использовать элементы управления XAML из JavaScript, и точка. При использовании JavaScript пользовательский интерфейс создается с использованием HTML, а не XAML.

person James McNellis    schedule 03.10.2012
comment
Существуют ли другие варианты использования, кроме созданного пользователем элемента управления, для которых требуется этот атрибут? например, предположим, что у меня есть компонент C++/Cx, не вообще работающий с пользовательским интерфейсом, при каких обстоятельствах следует аннотировать этот компонент с помощью WebHostHidden? - person Shmil The Cat; 16.05.2017