加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

创建非活动C#WPF窗口的缩略图

发布时间:2020-12-15 04:12:59 所属栏目:百科 来源:网络整理
导读:我在这里查看了很多主题,并搜索了相关信息,但我没有找到与我的问题有关的任何内容. 我想要做的就是让用户启动应用程序时,主窗口(不是MDI)打开时有四个图像框,每个图像框显示一个窗体的图像,当它们点击它时会打开.一旦选定的表单打开并进行了更改,如果他们单
我在这里查看了很多主题,并搜索了相关信息,但我没有找到与我的问题有关的任何内容.

我想要做的就是让用户启动应用程序时,主窗口(不是MDI)打开时有四个图像框,每个图像框显示一个窗体的图像,当它们点击它时会打开.一旦选定的表单打开并进行了更改,如果他们单击以最小化/关闭表单,它将(看似)最小化到图像框中,显示表单在缩略图视图中的外观的实时图像.

我的问题是,如何将图像制作成图像,以便将图像用作图像框中的缩略图?

此外……有人能指出我的某些资源,这将有助于我弄清楚如何动画“最小化”到图像框?

我不是要求任何人为我做我的工作,因为我想自己学习,但我有点卡住了.

最后,我不确定这涉及到什么,所以我不知道为这篇文章添加什么标签.当我弄清楚时,我会添加标签,以便其他人可以找到这些信息.

编辑:对不起,它在WPF中.不确定它会有什么不同.我在WPF方面仍然没有特别的经验.

解决方法

您可以使用VisualBrush,这是一个按钮的快速示例,其背景设置为stackpanel的缩小版本.
<DockPanel>
        <StackPanel x:Name="myRect" >
            <TextBox Text="MyTexasdfasdfasdfasdfasdft" Height="50" />
            <CheckBox IsChecked="True"  />
            <Rectangle Fill="Red" Width="100" Height="100" />
        </StackPanel>


        <Button>
            <Button.Background>
                <VisualBrush TileMode="None"  Viewport="0,1,1" Visual="{Binding ElementName=myRect}" >
                    <VisualBrush.Transform>
                        <ScaleTransform ScaleX="0.3" ScaleY="0.3" />
                    </VisualBrush.Transform>
                </VisualBrush>
            </Button.Background>
        </Button>
    </DockPanel>

编辑:虽然这个解决方案可以复制屏幕上的内容,当隐藏或删除屏幕上的内容时,VisualBrush也是如此.
为了保持图像,有必要将控件呈现给位图.这可以使用RenderTargetBitMap完成

// CenterControl is the target to render,ShowControl is the control to render the CenterControl onto.
var rtb = new RenderTargetBitmap((int)CenterControl.ActualWidth,(int)CenterControl.ActualHeight,96,PixelFormats.Pbgra32);
            rtb.Render(CenterControl);
            var bgBrush = new ImageBrush(rtb) {Transform = new ScaleTransform(0.1,0.1)};
            ShowControl.Background = bgBrush;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读