是否可以在Windows运行时for Windows Phone中创建一个未密封的基础ref类?

Pau*_*tts 3 windows-runtime c++-cx windows-phone-8

是否可以在Windows运行时的Windows Phone 8变体中创建基类,其他公共引用类可以使用?

对于Windows应用商店应用,MSDN记录了一种方法(见下文).

然而,这依赖于Windows::UI::Xaml::DependencyObject允许未密封的基类.

由于Windows Phone 8没有C++/XAML编程功能,因此该类不可用.您不能创建在公共引用类中可见的顶级对象,因为这会给出编译器警告.

是否有其他合适的基类可以在Windows Phone 8中使用而不是代替Windows::UI::Xaml::DependencyObject?

namespace InheritanceTest2 
{
    namespace WFM = Windows::Foundation::Metadata;

    // Base class. No public constructor.
    [WFM::WebHostHidden]
    public ref class Base : Windows::UI::Xaml::DependencyObject 
       // DependencyObject NOT AVAILABLE ON WP8!
    {
    internal:
        Base(){}
    protected:
        virtual void DoSomething (){}
        property Windows::UI::Xaml::DependencyProperty^ WidthProperty;
};

// Class intended for use by client code across ABI.
// Declared as sealed with public constructor.
public ref class MyPublicClass sealed : Base
{
public:
    MyPublicClass(){}
    //...
};
Run Code Online (Sandbox Code Playgroud)

}

slf*_*slf 5

http://channel9.msdn.com/Events/Build/2012/3-049

WinRT并不真正支持类的继承概念.Windows 8中的XAML控件有一个特例,但我们不支持Windows Phone 8上的C++ XAML.

彼得托尔(MSFT)