2012-10-03 4 views
7

Quando creo un nuovo controllo in un progetto WinRT C++/CX, l'attributo class [Windows::Foundation::Metadata::WebHostHidden] viene aggiunto per default da Visual Studio 2012.Perché Windows [Foundation :: Metadata :: WebHostHidden] è stato aggiunto per impostazione predefinita nei controlli personalizzati WinRT C++/CX?

Esempio:

namespace WindowsRuntimeComponent1 
{ 
    [Windows::Foundation::Metadata::WebHostHidden] 
    public ref class MyUserControl sealed 
    { 
    public: 
     MyUserControl(); 
    }; 
} 
  • C'è qualche motivo documentato per Questo? (Ho fatto i compiti ma non ho trovato questa informazione)
  • Per quanto ne so, l'uso dell'attributo [WebHostHidden] rende invisibile la classe per progetti HTML/Javascript WinRT. Questo significa che I non può creare un controllo in C++/CX che può essere utilizzato in Javascript?

risposta

15

Per quanto ne so, utilizzando l'attributo [WebHostHidden] rende la classe invisibile per i progetti di WinRT HTML/JavaScript.

Questo è corretto: questo attributo nasconde il tipo nella proiezione JavaScript, quindi da JavaScript è come se il tipo non esistesse.

Ciò significa che non è possibile creare un controllo in C++/CX che può essere utilizzato in JavaScript?

Non è possibile utilizzare i controlli XAML da JavaScript, punto. Quando si utilizza JavaScript, l'interfaccia utente è creata utilizzando HTML, non XAML.

+1

Esistono altri casi d'uso, ad eccezione del controllo creato dall'utente, che richiedono questo attributo? per esempio, supponiamo che io abbia un componente C++/Cx __not__ che tratta w/UI affatto, in quali circostanze si dovrebbe annotare questo componente w/WebHostHidden? –

Problemi correlati