Windows 8 使用flipView和标题的用户控件在WinRT应用程序中实现Pivot
我想实现仅在WP8中可用的pivot控件的行为,因此我使用flipView,对于标题,我使用用户控件,在其中放置模拟标题的按钮列表。 当我从flipViewItem传递到另一个项目时,我需要突出显示相应的按钮标题! 请帮忙Windows 8 使用flipView和标题的用户控件在WinRT应用程序中实现Pivot,windows-8,windows-runtime,flipview,Windows 8,Windows Runtime,Flipview,我想实现仅在WP8中可用的pivot控件的行为,因此我使用flipView,对于标题,我使用用户控件,在其中放置模拟标题的按钮列表。 当我从flipViewItem传递到另一个项目时,我需要突出显示相应的按钮标题! 请帮忙 <ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Hidden" > <ListView x:Name="lstTabs" Selec
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Hidden" >
<ListView x:Name="lstTabs" SelectionMode="Single"
SelectedIndex={Binding SelectedIndex,ElementName=FVFiche,Mode=TwoWay}>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapGrid Orientation="Horizontal" HorizontalChildrenAlignment="left"/>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Padding" Value="0"/>
<Setter Property="Margin" Value="0"/>
<Setter Property="FontSize" Value="32"/>
<Setter Property="Background" Value="#FF141414"/>
<Setter Property="BorderBrush" Value="Black"/>
</Style>
</ListView.ItemContainerStyle>
</ListView>
</ScrollViewer>
<FlipView x:Name="FVFiche" Grid.Row="1" />
最后,我选择了这个更简单的解决方案:
<Grid x:Name="RootLayout" Background="#FF141414" >
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Hidden" >
<ListView x:Name="lstTabs" SelectionMode="Single" SelectedIndex="{Binding SelectedIndex, ElementName=FVFiche, Mode=TwoWay}">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapGrid Orientation="Horizontal" HorizontalChildrenAlignment="left"/>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Padding" Value="0"/>
<Setter Property="Margin" Value="0"/>
<Setter Property="FontSize" Value="32"/>
<Setter Property="Background" Value="#FF141414"/>
<Setter Property="BorderBrush" Value="Black"/>
</Style>
</ListView.ItemContainerStyle>
</ListView>
</ScrollViewer>
<FlipView x:Name="FVFiche" Grid.Row="1" />
</Grid>
最后,我选择了这个解决方案,它更容易查看,以防其他人看到这篇文章,这里有一个示例,从2014年2月4日起,您可以在Windows开发中心获得如何在VS 2013中做到这一点 代码隐藏:
/// <summary>
/// Invoked when this page is about to be displayed in a Frame.
/// </summary>
/// <param name="e">Event data that describes how this page was reached. The Parameter
/// property is typically used to configure the page.</param>
protected override void OnNavigatedTo(NavigationEventArgs e)
{
var sampleData = new Controls_FlipView.Data.SampleDataSource();
FlipView4.ItemsSource = sampleData.Items;
ContextControl.ItemsSource = sampleData.Items;
ContextControl.SelectionChanged += ContextControl_SelectionChanged;
}
样本数据:
/// <summary>
/// Creates a collection of groups and items with hard-coded content.
/// </summary>
public sealed class SampleDataSource
{
private ObservableCollection<object> _items = new ObservableCollection<object>();
public ObservableCollection<object> Items
{
get { return this._items; }
}
public SampleDataSource()
{
Items.Add(new SampleDataItem("Cliff",
"item",
"Assets/Cliff.jpg"
));
Items.Add(new SampleDataItem("Grapes",
"item",
"Assets/Grapes.jpg"
));
Items.Add(new SampleDataItem("Rainier",
"item",
"Assets/Rainier.jpg"
));
Items.Add(new SampleDataItem("Sunset",
"item",
"Assets/Sunset.jpg"
));
Items.Add(new SampleDataItem("Valley",
"item",
"Assets/Valley.jpg"
));
}
}
到目前为止,您试图突出显示标题的内容是什么?显示一些代码。我不知道如何实现它:!我想当我更改flipViewItem时,我必须从父页面向用户控件发送一些事件,以突出显示相应的按钮@XYROIDW。虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,则“仅链接”答案可能会无效。@David修复此问题-1,因为我已根据您的请求添加了其他信息!
/// <summary>
/// Creates a collection of groups and items with hard-coded content.
/// </summary>
public sealed class SampleDataSource
{
private ObservableCollection<object> _items = new ObservableCollection<object>();
public ObservableCollection<object> Items
{
get { return this._items; }
}
public SampleDataSource()
{
Items.Add(new SampleDataItem("Cliff",
"item",
"Assets/Cliff.jpg"
));
Items.Add(new SampleDataItem("Grapes",
"item",
"Assets/Grapes.jpg"
));
Items.Add(new SampleDataItem("Rainier",
"item",
"Assets/Rainier.jpg"
));
Items.Add(new SampleDataItem("Sunset",
"item",
"Assets/Sunset.jpg"
));
Items.Add(new SampleDataItem("Valley",
"item",
"Assets/Valley.jpg"
));
}
}