如何从另一个 xaml- 文件中获取 WP7 全景内容?

Posted

技术标签:

【中文标题】如何从另一个 xaml- 文件中获取 WP7 全景内容?【英文标题】:How to get WP7 Panorama Content from another xaml- File? 【发布时间】:2012-03-06 13:59:20 【问题描述】:

首先我必须明确我想要完成的工作,这将是一个我有 4 个全景图的应用程序,每个全景图的第一页都是不同的。但最后 3 页是相同的。

是否有可能不在每个全景图中定义这 3 个页面?我可以在 XAML 文件中定义内容并将其加载到全景图中吗?因此,如果我有更改,我不必在 4 个不同的页面上进行更改...

希望你能理解我的问题。

谢谢。

【问题讨论】:

【参考方案1】:

可能最简单的方法是将每个相同页面的内容放入UserControls中,并在全景项中引用UserControls。

编辑:示例

目前情况:

<controls:Panorama Title="my application">
    <controls:PanoramaItem Header="first item">
        <!-- Your Panorama Item Content -->
    </controls:PanoramaItem>
    <controls:PanoramaItem Header="second item">
        <!--  Item Content To Be Moved -->
        <TextBlock Text="ToBeMovedToUserControl"/>  
    </controls:PanoramaItem>
</controls:Panorama>

现在将重复全景项目的内容放入 UserControl 中: 在 Visual Studio 中添加一个新的 UserControl(从项目模板中选择“UserControl”),然后 添加您当前在 PanoraItem 中的 XAML:

<UserControl x:Class="PanoramaApp1.WindowsPhoneControl1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    FontFamily="StaticResource PhoneFontFamilyNormal"
    FontSize="StaticResource PhoneFontSizeNormal"
    Foreground="StaticResource PhoneForegroundBrush"
    d:DesignHeight="480" d:DesignWidth="480">

    <Grid x:Name="LayoutRoot">
         <TextBlock Text="ToBeMovedToUserControl"/>  
    </Grid>
</UserControl>

并将全景 XAML 更改为:

<controls:Panorama Title="my application">
    <controls:PanoramaItem Header="first item">
        <!-- Your Panorama Item Content -->
    </controls:PanoramaItem>
    <controls:PanoramaItem Header="second item">
        <!--  Item Content To Be Moved -->
        <WindowsPhoneControl1/>
    </controls:PanoramaItem>
</controls:Panorama>

请注意,您可能必须在包含全景图的页面中包含命名空间定义,以便可以找到控件。

【讨论】:

+1 我打算回答同样的问题。似乎是最合乎逻辑的方法.. :) 你能给我一个小例子吗?我对 Silverlight 和这些控件很陌生... @AytacAkyol:添加了一个原始示例。【参考方案2】:

在.cs中动态添加全景项

【讨论】:

以上是关于如何从另一个 xaml- 文件中获取 WP7 全景内容?的主要内容,如果未能解决你的问题,请参考以下文章

全景标题绑定

我如何无法在 WP7 的全景视图中处理 selectionchange 事件?

WP7 - 如何从 ViewModel 获取列表框项目?

为啥更新时WP7全景页面会跳回?

如何防止 WP8 Panorama Control 暂时滑动?

如何从另一个类调用viewmodel方法