我有带片段的UWP应用,用于在框架中显示页面。主页:
<NavigationView.HeaderTemplate>
<DataTemplate>
<Grid Margin="24,10,0,0">
<TextBlock Style="{StaticResource TitleTextBlockStyle}"
Name="tbTitleTextBlock"
FontSize="28"
VerticalAlignment="Center"
Text="Welcome"/>
</Grid>
</DataTemplate>
</NavigationView.HeaderTemplate>
<Frame x:Name="ContentFrame" Margin="24">
<Frame.ContentTransitions>
<TransitionCollection>
<NavigationThemeTransition/>
</TransitionCollection>
</Frame.ContentTransitions>
</Frame>
如何从框架页面更改 tbTitleTextBlock 中的文本欢迎? 谢谢
答案 0 :(得分:1)
如何在Frame页面中更改tbTitleTextBlock中的文字Welcome?谢谢
tbTitleTextBlock的DataContext
与NavigationView
标头相同。因此,您可以使用Text="{Binding}"
来获取父级DataContext
的内容。并且,当您修改NavigationView
标头属性时,tbTitleTextBlock将自动更改。
<NavigationView.HeaderTemplate>
<DataTemplate>
<Grid Margin="24,10,0,0">
<TextBlock Style="{StaticResource TitleTextBlockStyle}"
Name="tbTitleTextBlock"
FontSize="28"
VerticalAlignment="Center"
Text="{Binding}"/>
</Grid>
</DataTemplate>
</NavigationView.HeaderTemplate>
用法
private void NavigationView_SelectionChanged(NavigationView sender, NavigationViewSelectionChangedEventArgs args)
{
if (args.IsSettingsSelected)
{
contentFrame.Navigate(typeof(SampleSettingsPage));
}
else
{
var selectedItem = (NavigationViewItem)args.SelectedItem;
string pageName = "AppUIBasics.SamplePages." + ((string) selectedItem.Tag);
sender.Header = pageName;
Type pageType = Type.GetType(pageName);
contentFrame.Navigate(pageType);
}
}