1

これは、 「PageFunctionがWindows Presentation Foundation(WPF)プロジェクトでサポートされていない」2012で発生した問題と同じ問題であることを認識していますが、そこで説明されている回避策を適用する方法がわからないため、これを別の質問として提起する方が適切です。これがサイトの精神に反する場合は、事前にお詫び申し上げます。

問題を要約すると、数年前のC#Visual Studio 2010 WPFプロジェクトがあり、これをVisual Studio 2012で開こうとしています。プロジェクトは引き続き正常にビルドおよび実行されますが、XAMLマークアップを編集する必要があります。 、およびVS2012のデザインビューは「無効なマークアップ」について文句を言います。それがつまずく正確なエラーは次のとおりです。

ページ機能は、Windows Presentation Foundation(WPF)プロジェクトではサポートされていません

XAMLの開始は次のようになります。

 <PageFunction
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:MyNamespace" 
    x:Class="MyProject.WizardPage1"
    x:TypeArguments="local:WizardResult"
    KeepAlive="True"
    WindowTitle="My Project" Height="350" ShowsNavigationUI="False" Width="700" >

元の質問で述べたように、このMicrosoftページにこの正確な問題の報告があります。「ViewBase」に関連する回避策がありますが、これがPageFunctionの問題にどのように関連しているかわかりません(私はXAMLに非常に慣れていないため、単純なものが欠落している可能性があります)。

Blend for VS2012(Windows 8以外のプロジェクトをサポートする新しいプレビューバージョン)でプロジェクトを開こうとしましたが、PageFunctionがサポートされていないという同じエラーが発生します。最近のVS2012のアップデート1でも、問題は修正されていません。

このページを視覚的に編集できるようにするために、XAMLまたは分離コードで何を変更する必要があるかを誰かにアドバイスできますか?

または、このプロジェクトを編集するために、あきらめてVS2010を再ダウンロードする必要がありますか?

4

1 に答える 1

2

回避策に基づいて、から派生するクラスを作成し、PageFunction<WizardResult>そのクラスから継承するように XAML を更新する必要があります。

クラス:

public class WizardResultPageFunction : PageFunction<WizardResult>
{
}

コード ビハインド: 新しいクラスから継承するようにクラスを変更するか、基本クラスの宣言を完全に削除して、XAML に基本クラスを定義させます。

public partial class WizardPage1
// or: 
// public partial class WizardPage1 : WizardResultPageFunction 
{
   ...
}

XAML:属性を 置き換えてPageFunction削除local:WizardResultPageFunctionします。x:TypeArguments

<local:WizardResultPageFunction 
   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
   xmlns:local="clr-namespace:MyNamespace" 
   x:Class="MyProject.WizardPage1"
   KeepAlive="True"
   WindowTitle="My Project" Height="350" ShowsNavigationUI="False" Width="700"
>
于 2012-11-27T14:52:56.780 に答える