2013-11-25 77 views
3

我有一個主窗口,其中包含一個框架。目的是在框架內顯示不同的視圖(頁面)。WPF - 導航到窗口中包含的框架內的不同頁面?

<Window> 
    <Frame Source="Page1.xaml" /> 
</Window> 

的Page1.xaml的類型爲,幷包含一個按鈕,說Button1的。點擊Button1我想導航到Page2.xaml。但是下面休息在運行時應用程序:

private void OnButton1Click(object sender, SelectionChangedEventArgs e) 
{ 
    NavigationService.Content = null; //I tried this thinking exception is caused because Page1.xaml is already present in frame. But no luck! :(
    NavigationService.Navigate(new Uri("Page2.xaml", UriKind.Relative)); 
} 

它拋出XamlParseException「設置屬性‘System.Windows.FrameworkElement.Style’引發了異常。」內部異常讀取指定的元素已經是另一個元素的邏輯子元素。先斷開它。

我懷疑這也與樣式資源有關,因爲如果我在Page2.xaml中保留空白網格導航工作沒有問題。 : - |

編輯:開始增加了與樣式逐一Page2.xaml元素,並意識到它僅僅取消當我再補充一點集的嵌入圖像(圖像來自單獨的DLL,資產)作爲按鈕的內容的樣式資源。風格的問題是在一個單獨的Style.xaml文件(資源字典),定義如下:

<Style x:Key="BackButton" TargetType="Button"> 
    <Setter Property="Content"> 
     <Setter.Value> 
     <Image Source="/Assets;component/Images/back.png" /> 
     <Setter.Value> 
    </Setter> 
</Style> 

如果我評論的內容屬性的setter,導航工作正常。因此,作爲一個快速解決方案,我在Page2.xaml上添加了圖像作爲直接按鈕的內容。

+0

你述說資源/參考幀? – Gusdor

+0

添加更多代碼。 –

回答

0

這是從工作中
但它不使用的NavigationService
它更新了`Style`失敗直接

PageDocFieldDetail pageDocFieldDetail = new PageDocFieldDetail(); 
framePageDocFieldDetail.Content = pageDocFieldDetail;