C# WPF:更改窗口';每个页面上的标题导航
我有一个C# WPF:更改窗口';每个页面上的标题导航,c#,wpf,xaml,window,C#,Wpf,Xaml,Window,我有一个WPF应用程序由一个窗口MainWindow.xaml 带有标题示例窗口 <Window Title="Sample_Window"> <Grid> <Frame x:Name="mainFrame" Source="/Page1.xaml" /> <Grid> </Window> 我的问题是,我想更改每个导航页面上主窗口的标题 例如,当我进入Page1时。xaml标题应为Sample\u Window-Page1
WPF应用程序
由一个窗口MainWindow.xaml
带有标题示例窗口
<Window
Title="Sample_Window">
<Grid>
<Frame x:Name="mainFrame" Source="/Page1.xaml" />
<Grid>
</Window>
我的问题是,我想更改每个导航页面上主窗口的标题
例如,当我进入Page1时。xaml
标题应为Sample\u Window-Page1
等
我在XAML
中尝试了下面的一段代码:(不起作用)
我也问了这个问题
但我的问题没有得到解决。标题仍然与示例窗口相同
this.Title = "Sample_Window-Page1";
你能试试这个吗?框架不会更改窗口,因此标题保持不变,您应该在每次更改页面时更新窗口标题。如果动态生成页面1的标题(“客户
Joe Smith
Details”),则页面1ViewModel上可能有一个名为title的属性。在这种情况下,您只需从主窗口绑定到框架内容的DataContext:
<Window
Title="{Binding ElementName=mainFrame, Path=Content.DataContext.Title}">
<Grid>
<Frame x:Name="mainFrame" Source="/Page1.xaml" />
</Grid>
</Window>
如果Page1标题是静态文本(使用Title而不是WindowTitle属性),则只需从主窗口直接绑定到它:
<Window
Title="{Binding ElementName=mainFrame, Path=Content.Title}">
<Grid>
<Frame x:Name="mainFrame" Source="/Page1.xaml" />
</Grid>
</Window>
以上内容对我不起作用,因为它在运行应用程序时加载了[myPage1]。我通过单击主窗口上的按钮来显示[myPage1],以便显示带有静态标题的页面。我在导航中添加了所需的标题文本 MainWindow.xaml
<DockPanel> <Frame x:Name="_mainFrame"/> </DockPanel>
不,它将不起作用,因为这是。标题是更改页面标题的属性。我需要在哪里写这个?在或中,正如我写的“从您的主窗口”中,它应该放在中,我将更新答案以使其更清楚。但它仍然不起作用。。这就是我所做的。。如果您使用的是DataContext.Title,则必须确保Page1具有DataContext,并且DataContext中有Title属性。如果窗口标题是动态的,这很有用。否则,只需绑定到Content.Title(确保Page1具有Title属性设置)。
<Window
Title="{Binding ElementName=mainFrame, Path=Content.DataContext.Title}">
<Grid>
<Frame x:Name="mainFrame" Source="/Page1.xaml" />
</Grid>
</Window>
<Window
Title="{Binding ElementName=mainFrame, Path=Content.Title}">
<Grid>
<Frame x:Name="mainFrame" Source="/Page1.xaml" />
</Grid>
</Window>
<DockPanel> <Frame x:Name="_mainFrame"/> </DockPanel>
_mainFrame.NavigationService.Navigate(new [myPage1] (Title= "what ever you want displayed"));