2012-03-08 62 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

相关问题