2012-11-27 54 views
1

我知道這與"PageFunction is not supported in a Windows Presentation Foundation (WPF) project" 2012中提出的問題相同 - 但是,我不確定如何應用此處提及的解決方法,並認爲它可能更合適提出這個問題作爲一個單獨的問題。如果這違反網站風氣,請事先道歉。Windows Presentation Foundation項目不支持PageFunction

總結一下問題:我有一個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" > 

正如原始問題中所述,有關於this Microsoft頁面上的確切問題的報告。有一個涉及「ViewBase」的解決方法,但我看不到這與PageFunction問題有何關係(我對XAML非常陌生,所以我可能會錯過簡單的東西)。

我試過在VS2012(支持非Windows 8項目的新預覽版本)中打開項目,但是給出了關於PageFunction不支持的相同錯誤。 VS2012的最新Update 1也沒有解決問題。

任何人都可以告訴我需要改變我的XAML或代碼隱藏,以便能夠直觀地編輯此頁面嗎?

或者我應該放棄並重新下載VS2010以編輯此項目?

回答

2

基於解決方法,您需要創建一個從PageFunction<WizardResult>派生的類,然後將您的XAML更新爲從該類繼承。

類:

public class WizardResultPageFunction : PageFunction<WizardResult> 
{ 
} 

代碼隱藏: 要麼改變類從您的新類繼承,或者完全刪除基類的聲明,讓XAML定義的基類:

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

XAML: 更換PageFunctionlocal: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" 
> 
+0

太棒了 - 就像一個夢。謝謝! – KenD

相關問題