2012-10-03 3 views
7

Khi tôi tạo ra một điều khiển mới trong một dự án WinRT C++/CX, lớp thuộc tính [Windows::Foundation::Metadata::WebHostHidden] được thêm vào theo mặc định bởi Visual Studio 2012.Tại sao [Windows :: Foundation :: Metadata :: WebHostHidden] được thêm vào theo mặc định trong các điều khiển WinRT C++/CX tùy chỉnh?

Ví dụ:

namespace WindowsRuntimeComponent1 
{ 
    [Windows::Foundation::Metadata::WebHostHidden] 
    public ref class MyUserControl sealed 
    { 
    public: 
     MyUserControl(); 
    }; 
} 
  • Có bất kỳ lý do tài liệu cho điều này? (Tôi đã làm bài tập ở nhà nhưng tôi không thể tìm thấy thông tin này)
  • Theo như tôi biết, việc sử dụng thuộc tính [WebHostHidden] làm cho lớp ẩn đối với các dự án HTML/Javascript của WinRT. Điều này có nghĩa là tôi không thể tạo điều khiển trong C++/CX có thể được sử dụng trong Javascript?

Trả lời

15

Theo như tôi biết, việc sử dụng thuộc tính [WebHostHidden] làm cho lớp ẩn đối với các dự án HTML/JavaScript WinRT.

Điều này đúng: thuộc tính này ẩn loại trong phép chiếu JavaScript, do đó, từ JavaScript, nó giống như loại không tồn tại.

Điều này có nghĩa là tôi không thể tạo điều khiển trong C++/CX có thể được sử dụng trong JavaScript không?

Bạn không thể sử dụng các điều khiển XAML từ JavaScript, dấu chấm. Khi sử dụng JavaScript, giao diện người dùng được tác giả sử dụng HTML chứ không phải XAML.

+1

Có _other_ trường hợp sử dụng nào, ngoại trừ kiểm soát được người dùng ủy quyền, yêu cầu thuộc tính này? ví dụ, giả sử tôi đã thành phần C++/Cx __not__ giao dịch với giao diện w/UI, trong trường hợp nào người ta nên chú thích thành phần này w/WebHostHidden? –