在不同的窗口中镜像WPF网格内容

3

我正在开发一个WPF软件。 在主窗口中,我有一个名为"gridWindow"的网格和一些按钮。 每个按钮的单击事件实际上会分别调用不同的窗口,然后获取窗口中的内容并添加到主窗口中的网格中。

private void btnWelcome_Click(object sender, RoutedEventArgs e)
{
    Window_Welcome childWindow = new Window_Welcome();
    object PrjWindowContent = childWindow.Content;
    childWindow.Content = null;
    gridWindow.Children.Add(childWindow as UIElement);
}

然后我有另一个按钮,需要打开一个名为“BlackScreen”的新窗口,并镜像主窗口网格中的所有内容。 MainWindow网格中的内容始终根据系统时间或其他MainWindow控件的用户输入而变化。镜像窗口的内容也需要相应地更改。

我学到可能需要使用可视刷来复制屏幕。 但是我做不到。

这是我在BlackScreen.xaml中的代码。

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition/>
    </Grid.RowDefinitions>

    <Grid Grid.Row="0" Background="Black">
        <Viewbox Name="vbox" Stretch="Uniform"><!--DataContext="{Binding ElementName=gridWindow}"-->
            <Grid>
                <Grid.Background>
                    <VisualBrush Stretch="Uniform" Visual="{Binding}">
                    </VisualBrush>
                </Grid.Background>
            </Grid>
        </Viewbox>
    </Grid>
</Grid>
1个回答

3

下面是一个简单的示例,演示了如何使用VisualBrush来“镜像”您的主内容Grid(或UI的任何其他部分):

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
    </Grid.RowDefinitions>
    <Grid Name="MainContent">
        <Ellipse Fill="Red" />
        <Rectangle Fill="Yellow" Margin="50" />
    </Grid>
    <Rectangle Grid.Row="1">
        <Rectangle.Fill>
            <VisualBrush Visual="{Binding ElementName=MainContent}" />
        </Rectangle.Fill>
    </Rectangle>
</Grid>

这将生成以下内容:

在此输入图片描述


你好,感谢回复。 我能够在同一个UI/窗口中进行镜像。 然而,我需要将其镜像到不同的窗口上。 - Fei Hap Lee
这不是问题,因为您可以只传递一个对象的引用来进行“镜像”。 - Sheridan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接