14

重複の可能性:
WPF での UserControl からの継承

私も定義した他のユーザー コントロールから派生した WPF ユーザー コントロールを作成しようとしています。

<myNamespace:NavigationControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
xmlns:myNamespace="clr-namespace:myNamespace" mc:Ignorable="d"
x:Class="myNamespace.WelcomeScreen"
x:Name="UserControl"
d:DesignWidth="640" d:DesignHeight="480">

WelcomeScreen.cs は次のようになります。

public partial class WelcomeScreen : NavigationControl
{
    public WelcomeScreen()
    {
        this.InitializeComponent();
    }
}

これをコンパイルすると、次のエラーが発生します。

'myNamespace.NavigationControl' は、XAML を使用して定義されているため、XAML ファイルのルートにすることはできません。

私は何を間違っていますか?

4

2 に答える 2

16

MS Knowledgebase の記事を参照してください: http://support.microsoft.com/kb/957231 . XAML でのユーザー コントロールの派生はサポートされていません。コードでユーザー コントロールを派生させる必要があります。

于 2012-06-03T18:59:56.307 に答える
10

あなたはそれをするつもりはなく、エラーはそれを示しています。

さらに、XAML を使用して をContent設定します。派生コントロールで再度設定すると、以前に定義したものがすべて失われます。継承と再利用が必要な場合は、カスタム コントロールを使用します (それぞれの を作成しますControlTemplate)。

于 2012-06-03T18:59:18.660 に答える