3

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

对于 Windows 应用商店应用程序,MSDN 记录了执行此操作的方法(见下文)。

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

由于 Windows Phone 8 没有 C++/XAML 编程能力,因此该类不可用。不允许创建在公共 ref 类中可见的顶级对象,因为这会发出编译器警告。

是否有另一个合适的基类可以在 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(){}
    //...
};

}

4

1 回答 1

5

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

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

彼得·托尔 (MSFT)

于 2013-03-08T14:35:10.393 回答