为什么在自定义WinRT C++/CX控件中默认添加[Windows :: Foundation :: Metadata :: WebHostHidden]?

yms*_*yms 7 windows-8 windows-runtime c++-cx visual-studio-2012

当我在WinRT C++/CX项目中创建新控件时[Windows::Foundation::Metadata::WebHostHidden],Visual Studio 2012默认添加class属性.

例:

namespace WindowsRuntimeComponent1
{
    [Windows::Foundation::Metadata::WebHostHidden]
    public ref class MyUserControl sealed
    {
    public:
        MyUserControl();
    };
}
Run Code Online (Sandbox Code Playgroud)
  • 这有什么记录的原因吗?(我完成了我的作业,但没有找到这条信息)
  • 据我所知,使用该属性[WebHostHidden]使得该类对WinRT HTML/Javascript项目不可见.这是否意味着我无法在C++/CX中创建可在Javascript中使用的控件?

Jam*_*lis 15

据我所知,使用该属性[WebHostHidden]使得该类对WinRT HTML/JavaScript项目不可见.

这是正确的:这个属性隐藏了JavaScript投影中的类型,因此从JavaScript开始,就好像该类型不存在一样.

这是否意味着我无法在C++/CX中创建可在JavaScript中使用的控件?

您不能使用JavaScript中的XAML控件.使用JavaScript时,UI是使用HTML而不是XAML创作的.