2012-03-08 65 views
1

在WP7中,您可以通過NavigationService輕鬆導航到新頁面。是否可以通過Wp7中的Uri加載用戶控件

例如, _navigationService.Navigate(new Uri(「/ View/SamplePage.xaml」,UriKind.Relative));

是否可以通過Uri加載用戶控件。

例如。 UserControl sampleControl = MagicLoadFunction(new Uri(「/ Controls/SampleControl.xaml」,UriKind.Relative))

回答

2

如果control/xaml文件只包含xaml,並且沒有後面的代碼可以將文件加載爲文本,然後調用XamlReader.Load

或者,如果你知道這個控件的類型,你只需要創建一個實例,並且不需要通過Uri加載它。該類型已經被編譯。

或者,如果您嘗試使用某種方法制作可以更改其顯示的XAML的方法,那麼只需使用模板或將其設置爲ContentPresenter並動態設置內容即可。

1

不,你不能 - 框架只允許你導航到頁面。我不知道你爲什麼想要導航到用戶控件?您可以簡單地將此控件託管在一個頁面中:

<phone:PhoneApplicationPage 
    ... 
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone" 
    xmlns:local="clr-namespace:YourNameSpaceHere"> 
    <Grid x:Name="LayoutRoot"> 
     <local:SampleControl/> 
    </Grid> 
</phone:PhoneApplicationPage> 

然後直接導航到頁面而不是您的用戶控件。

+0

我認爲你實際上可以導航到UserControl(偶然發現),但那不是我想要做的。我想使用URI新建一個視圖的實例。 – 2012-03-09 06:51:02

相關問題