我正在使用帶棱鏡和MEF的Silverlight 5。使用XamlReader.Load()從文件創建棱鏡區域時出錯?
我試圖通過讀取XAML文件來替換我在運行時外殼,從它創建一個的UIElement並更換舊殼的新的UIElement的內容。我正在使用XamlReader.Load()
。
這樣做,直到我嘗試創建棱鏡區域。
我可以創造一個新的外殼,在它只是一個棱鏡區域,但是當我在新殼兩個或兩個以上的區域,我得到的是在我的瀏覽器中的空白屏幕,並沒有錯誤消息。
有沒有辦法來調試呢?爲什麼會發生這種情況?
代碼:
創建的UIElement和更換外殼(在Shell.xaml.cs):
DependencyObject rootObject = XamlReader.Load(XAMLFileString) as DependencyObject;
UIElement customShell = rootObject as UIElement;
this.Content = customShell;
此作品(一個區域):
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:prism="http://www.codeplex.com/prism">
<StackPanel>
<ContentControl prism:RegionManager.RegionName="Region1"/>
</StackPanel>
</UserControl>
這也適用(兩個常規內容控件):
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:prism="http://www.codeplex.com/prism">
<StackPanel>
<ContentControl Content="C1"/>
<ContentControl Content="C2"/>
</StackPanel>
</UserControl>
但是這給了我一個空白屏幕,而不是(二棱鏡地區):
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:prism="http://www.codeplex.com/prism">
<StackPanel>
<ContentControl prism:RegionManager.RegionName="Region1"/>
<ContentControl prism:RegionManager.RegionName="Region2"/>
</StackPanel>
</UserControl>