Question

When I create a new control in a WinRT C++/CX project, the class attribute [Windows::Foundation::Metadata::WebHostHidden] is added by default by Visual Studio 2012.

Example:

namespace WindowsRuntimeComponent1
{
    [Windows::Foundation::Metadata::WebHostHidden]
    public ref class MyUserControl sealed
    {
    public:
        MyUserControl();
    };
}
  • Is there any documented reason for this? (I did my homework but I failed to find this piece of information)
  • As far as I know, using the attribute [WebHostHidden] makes the class invisible for WinRT HTML/Javascript projects. Does this mean that I cannot create a control in C++/CX that can be used in Javascript?
Was it helpful?

Solution

As far as I know, using the attribute [WebHostHidden] makes the class invisible for WinRT HTML/JavaScript projects.

This is correct: this attribute hides the type in the JavaScript projection, so from JavaScript it is as if the type does not exist.

Does this mean that I cannot create a control in C++/CX that can be used in JavaScript?

You cannot use XAML controls from JavaScript, period. When using JavaScript, UI is authored using HTML, not XAML.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top