【问题标题】:Is it possible to load a usercontrol via a Uri in Wp7是否可以通过 Wp7 中的 Uri 加载用户控件
【发布时间】:2012-03-08 19:33:50
【问题描述】:

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

    如果 control/xaml 文件只包含 xaml 而后面没有代码,您可以将该文件作为文本加载,然后在其上调用XamlReader.Load

    或者,如果您知道控件的类型,您可以新建一个实例,而无需通过 Uri 加载它。该类型已被编译。

    或者,如果您想通过某种方式创建一个可以更改其显示的 XAML 的控件,那么只需使用模板或将其设置为 ContentPresenter 并动态设置内容。

    【讨论】:

      【解决方案2】:

      不,您不能 - 该框架仅允许您导航到页面。我不确定您为什么要导航到用户控件?您可以简单地在页面中托管此控件:

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

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

      【讨论】:

      • 我认为您实际上可以导航到 UserControl(偶然发现),但这不是我想要做的。我想使用 URI 新建一个视图实例。
      猜你喜欢
      • 2011-12-03
      • 1970-01-01
      • 2019-10-14
      • 2012-03-17
      • 2021-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多