在我的代表LayoutAwarePage的xy.xaml文件中,我有两个元素
<StackPanel x:Name="LeftCommands" Orientation="Horizontal" Grid.Column="2" Margin="0,0,100,0" HorizontalAlignment="Right">
<Button x:Name="BragButton" HorizontalAlignment="Left"/>
</StackPanel>
和
<Page.TopAppBar>
<AppBar x:Name="PageAppBar" Padding="10,0,10,0" Height="120" Opacity="0.98">
<ItemsControl x:Name="groupTopMenuBar" Margin="116,0,40,0">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid Margin="0,0,0,0">
<Button Click="UpperMenu_Click"
Style="{StaticResource TextPrimaryButtonStyle}"
Height="Auto" Margin="20,0,20,0"
CommandParameter="{Binding Group.MenuItemID}">
<StackPanel>
<Image Source="{Binding Group.IconURL}" Width="40"
Height="40" VerticalAlignment="Top" Stretch="UniformToFill" />
<TextBlock Text="{Binding Group.Name}" HorizontalAlignment="Left"
VerticalAlignment="Bottom"
Foreground="{StaticResource ListViewItemOverlayForegroundThemeBrush}"
Style="{StaticResource TitleTextStyle}" FontSize="16" />
</StackPanel>
</Button>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</AppBar>
</Page.TopAppBar>
我需要在我的应用程序的每个页面中使用这些元素,我不想在每个.xaml应用程序文件中编写这段代码,所以我想问一下如何做到这一点。
谢谢。
答案 0 :(得分:1)
您希望跨多个页面共享AppBar。遗憾的是,在Windows应用商店应用中,使用StaticResource时,无法使用App.xaml中定义的AppBar,就像Windows Phone一样。 有两种方法可以做到:
我可能会发现页面导航没什么问题。如果要从UserControl导航主机框架,请将App.xaml.cs OnActivated方法中创建的Frame实例存储到App类的某些静态属性中。例如public static Frame RootFrame { get; private set; }
,并按App.RootFrame = new Frame()
设置。要从UserControl后面的代码导航,只需调用以下内容:App.RootFrame.Navigate()
。
Filip Skakun here on StackOverflow建议采用这种方法。