在WP7中,您可以通过NavigationService轻松导航到新页面。
EG。 _navigationService.Navigate(new Uri(“/ View / SamplePage.xaml”,UriKind.Relative));
是否可以通过Uri加载用户控件。
例如。 UserControl sampleControl = MagicLoadFunction(new Uri(“/ Controls / SampleControl.xaml”,UriKind.Relative))
答案 0 :(得分:2)
如果control / xaml文件只包含xaml且后面没有代码,则可以将文件作为文本加载,然后在其上调用XamlReader.Load
。
或者,如果您知道控件的类型,那么只需要新建一个实例,并且不需要通过Uri加载它。该类型已经被编译。
或者,如果您正试图通过某种方式制作一个可以更改其显示的XAML的控制,那么只需使用模板化或使其成为ContentPresenter并动态设置内容。
答案 1 :(得分: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>
然后直接导航到页面而不是用户控件。