3

他のパブリックrefクラスが使用できるWindowsランタイムのWindowsPhone8バリアントで基本クラスを作成することは可能ですか?

Windowsストアアプリの場合、MSDNはこれを行う方法を文書化しています(以下を参照)。

Windows::UI::Xaml::DependencyObjectただし、これは、許可された封印されていない基本クラスを持っていることに依存しています。

WindowsPhone8には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コントロールには特別なケースがありますが、WindowsPhone8ではC++XAMLはサポートされていません。

Peter Torr(MSFT)

于 2013-03-08T14:35:10.393 に答える