如何在另一个页面的多个框架中使用一个页面对象?

How to use one Page object in multiple Frames in another Page?

我想要一个包含 Frames 的 Page 对象,Frames 又包含另一个 Page。当前结果如下所示:
但我希望页面出现在所有框架中。
我怎样才能做到这一点?
包含框架的页面:

public partial class CombinedPage : Page
{
    public CombinedPage()
    {
        InitializeComponent();
        Frame1.Content = MainWindow.testPage;
        Frame2.Content = MainWindow.testPage;
        Frame3.Content = MainWindow.testPage;
        Frame4.Content = MainWindow.testPage;
    }
}

XAML:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition/>
        <RowDefinition Height="Auto"/>
        <RowDefinition/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition/>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>
        
    <GridSplitter Grid.Column="1" Grid.RowSpan="3" Width="5" Background="Black"
                VerticalAlignment="Stretch" HorizontalAlignment="Center" />
    <GridSplitter Grid.Row="1" Grid.ColumnSpan="3" Height="5" Background="Black"
                VerticalAlignment="Center" HorizontalAlignment="Stretch" />

    <Frame NavigationUIVisibility="Hidden" x:Name="Frame1" Grid.Row="0" Grid.Column="0"/>
    <Frame NavigationUIVisibility="Hidden" x:Name="Frame2" Grid.Row="0" Grid.Column="2"/>
    <Frame NavigationUIVisibility="Hidden" x:Name="Frame3" Grid.Row="2" Grid.Column="0"/>
    <Frame NavigationUIVisibility="Hidden" x:Name="Frame4" Grid.Row="2" Grid.Column="2"/>
</Grid>

TestPage XAML:

<Grid>
    <Viewbox Stretch="Uniform" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
        <Label  Name="LiveTimeLabel" Content="%TIME%" HorizontalContentAlignment="Stretch"  HorizontalAlignment="Stretch" Foreground="#cccccc" VerticalAlignment="Stretch" FontWeight="Bold" />
    </Viewbox>
</Grid>

感谢任何建议!

编辑 1: 好的,如果我只能使用一次 Page 对象,那么如何将它的位置从一个框架更改为另一个框架?我试过了,但它似乎不起作用:

public partial class CombinedPage : Page
{
    public CombinedPage()
    {
        InitializeComponent();
        Frame1.Content = MainWindow.testPage;
        Frame2.Content = MainWindow.testPage;
        Frame3.Content = MainWindow.testPage;
        Frame4.Content = MainWindow.testPage;
    }

    private void butt1_Click(object sender, System.Windows.RoutedEventArgs e)
    {
        Frame1.Content = MainWindow.testPage;
    }

    private void butt2_Click(object sender, System.Windows.RoutedEventArgs e)
    {
        Frame2.Content = MainWindow.testPage;
    }

    private void butt3_Click(object sender, System.Windows.RoutedEventArgs e)
    {
        Frame3.Content = MainWindow.testPage;
    }

    private void butt4_Click(object sender, System.Windows.RoutedEventArgs e)
    {
        Frame4.Content = MainWindow.testPage;
    }
}
<Grid>
    <Grid.RowDefinitions>
        <RowDefinition/>
        <RowDefinition Height="Auto"/>
        <RowDefinition/>
        <RowDefinition Height="50"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition/>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>
        
    <GridSplitter Grid.Column="1" Grid.RowSpan="3" Width="5" Background="Black"
                VerticalAlignment="Stretch" HorizontalAlignment="Center" />
    <GridSplitter Grid.Row="1" Grid.ColumnSpan="3" Height="5" Background="Black"
                VerticalAlignment="Center" HorizontalAlignment="Stretch" />

    <Frame NavigationUIVisibility="Hidden" x:Name="Frame1" Grid.Row="0" Grid.Column="0"/>
    <Frame NavigationUIVisibility="Hidden" x:Name="Frame2" Grid.Row="0" Grid.Column="2"/>
    <Frame NavigationUIVisibility="Hidden" x:Name="Frame3" Grid.Row="2" Grid.Column="0"/>
    <Frame NavigationUIVisibility="Hidden" x:Name="Frame4" Grid.Row="2" Grid.Column="2"/>
    <StackPanel Grid.Row="3" Grid.Column="0" Orientation="Horizontal">
        <Button x:Name="butt1" Width="50" Click="butt1_Click"/>
        <Button x:Name="butt2" Width="50" Click="butt2_Click"/>
        <Button x:Name="butt3" Width="50" Click="butt3_Click"/>
        <Button x:Name="butt4" Width="50" Click="butt4_Click"/>
    </StackPanel>
</Grid>

您应该创建相同的单独实例 Page class:

public CombinedPage()
{
    InitializeComponent();
    Frame1.Content = new TestPage();
    Frame2.Content = new TestPage();
    Frame3.Content = new TestPage();
    Frame4.Content = new TestPage();
}

控件的单个实例只能在可视化树中出现 一次,因此您不能在多个 Frame.[=13] 中显示相同的页面实例=]