0

我会尽量清楚地解释我的问题。

我在 WinForms 中有一个工作代码,它有一个板(PictureBox),它显示了一个由每个用户控件的 UserControl.BitmapCopy() 函数从用户控件列表(win-forms)生成的图像。

这个过程从一个空白图像(图形类型)开始,对于每个用户控件,我使用用户控件的函数 BitmapCopy() 在特定位置绘制它。

结果是一个看起来像真实表单的图像(带有按钮、标签等),但它只是一个图像。

然后我在图片框中显示此图像。

现在我需要在 WPF 中实现这段代码,但是我无法使用 BitmapCopy() 生成每个用户控件的图像。

我找到了这个代码,所以现在我可以为每个用户控件生成一个位图,但我不知道创建大板的最佳方法是什么,最终显示一个包含所有用户控件图像的位图,在不同的地方。

我将不胜感激任何帮助。

4

1 回答 1

1

这是 WPF 中的等价物:

<Window x:Class="MiscSamples.VisualBrush"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="VisualBrush" Height="300" Width="300" x:Name="Window">
    <StackPanel>
        <TextBlock Text="Hi, Im a Window!"/>
        <TextBox Text="This is a TextBox"/>
        <Slider Width="200"/>
    </StackPanel>
    <Window.ToolTip>
        <ToolTip DataContext="{Binding PlacementTarget, RelativeSource={RelativeSource Self}}">
            <Grid Height="400" Width="400">
                <Grid.Background>
                    <VisualBrush Visual="{Binding}"/>
                </Grid.Background>
            </Grid>
        </ToolTip>
    </Window.ToolTip>
</Window>

Window'sToolTip由一个网格组成,VisualBrush其本身Visual就是网格Window。它看起来像这样:

在此处输入图像描述

如您所见,在 WPF 中实现相同的功能只需要 0 行 C# 代码。

于 2013-03-21T16:48:13.970 回答