2012-10-03 24 views
7

Cuando creo un nuevo control en un proyecto WinRT C++/CX, el atributo de clase [Windows::Foundation::Metadata::WebHostHidden] se añade de forma predeterminada por Visual Studio 2012.¿Por qué se agrega [Windows :: Foundation :: Metadata :: WebHostHidden] de forma predeterminada en controles WinRT C++/CX personalizados?

Ejemplo:

namespace WindowsRuntimeComponent1 
{ 
    [Windows::Foundation::Metadata::WebHostHidden] 
    public ref class MyUserControl sealed 
    { 
    public: 
     MyUserControl(); 
    }; 
} 
  • ¿Hay alguna razón documentada para ¿esta? (Hice mi tarea pero no encontré esta información)
  • Por lo que sé, usar el atributo [WebHostHidden] hace que la clase sea invisible para proyectos WinRT HTML/Javascript. ¿Esto significa que yo no puedo crear un control en C++/CX que se pueda usar en Javascript?

Respuesta

15

Por lo que yo sé, el uso del atributo [WebHostHidden] hace que la clase invisible para los proyectos WinRT HTML/JavaScript.

Esto es correcto: este atributo oculta el tipo en la proyección de JavaScript, por lo que desde JavaScript es como si el tipo no existiera.

¿Esto significa que no puedo crear un control en C++/CX que se pueda usar en JavaScript?

No puede usar los controles XAML de JavaScript, punto. Al usar JavaScript, la interfaz de usuario se crea utilizando HTML, no XAML.

+1

¿Hay otros casos de uso, excepto los del control creado por el usuario, que requieren este atributo? por ejemplo, supongamos que tengo el componente C++/Cx __not__ que no trata con UI, ¿bajo qué circunstancias uno debe anotar este componente con WebHostHidden? –

Cuestiones relacionadas