【发布时间】:2011-03-16 15:21:13
【问题描述】:
我在 wp7 中使用全景 UI。
我有几个全景屏幕,每个屏幕都包含 ListBox。 我只想将按钮添加到一个全景页面(与 ListBox 一起),当我移动到另一个页面时,我不会在另一个页面上移动按钮。 此按钮需要在列表框上方,其功能仅与此列表实例有关,与另一个全景屏幕无关。 这可能实现吗?
【问题讨论】:
标签: windows-phone-7 listbox panorama-control
我在 wp7 中使用全景 UI。
我有几个全景屏幕,每个屏幕都包含 ListBox。 我只想将按钮添加到一个全景页面(与 ListBox 一起),当我移动到另一个页面时,我不会在另一个页面上移动按钮。 此按钮需要在列表框上方,其功能仅与此列表实例有关,与另一个全景屏幕无关。 这可能实现吗?
【问题讨论】:
标签: windows-phone-7 listbox panorama-control
Pivot 控件具有 Pivot Items,因此您可以将按钮添加到一个 Pivot Item 中
编辑:在枢轴项目(或全景项目)内,您必须使用 Grid 才能有两行,一个是按钮,另一个是列表框
<controls:Pivot Title="MY APPLICATION">
<!--Pivot item one-->
<controls:PivotItem Header="item1">
<Grid>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Button Grid.Row="0"></Button>
<ListBox Grid.Row="1"></ListBox>
</Grid>
</controls:PivotItem>
<!--Pivot item two-->
<controls:PivotItem Header="item2">
<Grid/>
</controls:PivotItem>
</controls:Pivot>
【讨论】:
PanoramaItems 而不是PivotItems
您可以为Panorama 控件本身设置TitleTemplate 属性,然后将现有静态资源绑定到它。例如:
<phone:PhoneApplicationPage.Resources>
<DataTemplate x:Key="header">
<StackPanel>
<TextBlock Text="Pivot Control">
</TextBlock>
<Button Margin="0,0,800,0" Width="200" Content="Test"></Button>
</StackPanel>
</DataTemplate>
</phone:PhoneApplicationPage.Resources>
这是一个非常基本的示例,但您可以引入自定义绑定。
然后就可以在控件中引用自定义模板了:
<controls:Panorama TitleTemplate="{StaticResource header}">
<controls:PanoramaItem Header="Main"></controls:PanoramaItem>
<controls:PanoramaItem Header="Second"></controls:PanoramaItem>
<controls:PanoramaItem Header="Third"></controls:PanoramaItem>
</controls:Panorama>
在Panorama 控件中,按钮无论如何都会在标题中移动,因此在您的情况下,更好的选择是标题不移动的Pivot 控件。
【讨论】: