是否可以通过Wri中的Uri加载用户控件

时间:2012-03-08 07:33:16

标签: windows-phone-7 navigation windows-phone-7.1

在WP7中,您可以通过NavigationService轻松导航到新页面。

EG。 _navigationService.Navigate(new Uri(“/ View / SamplePage.xaml”,UriKind.Relative));

是否可以通过Uri加载用户控件。

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

2 个答案:

答案 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>

然后直接导航到页面而不是用户控件。