【问题标题】:Capture the screen selected by Current Form in WPF?捕获WPF中当前表单选择的屏幕?
【发布时间】:2014-05-09 01:04:10
【问题描述】:

我正在创建一个应用程序,它可以捕获当前活动窗口窗体选择的屏幕,并通过将其设置为背景来让用户知道。请参考图片

但我的问题是我无法获得活动窗口大小的大小。这是我一直在处理的代码

 private void button5_Click(object sender, RoutedEventArgs e)

    {
        Image b = null;
        int w = (int)this.Width;
        int h = (int)this.Height;
        **System.Drawing.Size sz = this.Size;
        System.Drawing.Point loc = this.Location;**
        Hide();
        System.Threading.Thread.Sleep(500);
        using (b = new Bitmap(w, h))
        {
            using (Graphics g = Graphics.FromImage(b))
            {
                g.CopyFromScreen(loc, new System.Drawing.Point(0, 0), sz);
            }

            Image x = new Bitmap(b);

            ImageBrush myBrush = new ImageBrush();
            x.Save(@"C:\Users\DZN\Desktop\testBMP.jpeg", ImageFormat.Jpeg);
            myBrush.ImageSource = new BitmapImage(new Uri(@"C:\Users\DZN\Desktop\testBMP.jpeg", UriKind.Absolute));
            this.Background = myBrush;

        }
        Show();
    }

在粗体行中,我收到错误消息说 WpfApplication1.MainWindow' 不包含“大小,位置”的定义。但这在 Windows 窗体中效果很好。非常感谢任何帮助。谢谢你。

【问题讨论】:

  • 你添加了System.Drawing参考吗?
  • 当您使用 WPF 而不是 WinForms 时,为什么您的屏幕截图和文本是“表单”?
  • 我已经提到过先生。我可以以胜利的形式做到这一点。但在 WPF 中我有一个问题

标签: c# wpf screen-capture


【解决方案1】:

WPF 窗口没有 size 属性,您可以使用 ActualWidthActualHeight。同样,它也不会公开Location,但您可以使用LeftTop 属性。

以上所有属性都是double 类型,因此您需要转换为适当的类型。

System.Drawing.Size sz = new System.Drawing.Size((int)ActualWidth, (int)ActualHeight);
System.Drawing.Point loc = new System.Drawing.Point((int)Left, (int)Top);

【讨论】:

  • 先生,我该如何转换它?我试着去做。但仍然得到同样的错误
  • System.Drawing.Size sz = ( )this.ActualWidth;对不起,我知道这不是一个好的问题,先生。但是先生,您能告诉我这里合适的类型吗?谢谢
  • @user2781812 更新了我的答案,看看是否有帮助
  • 先生,我对此感到困惑。我明白你说的。但我尝试了一切以按照说明更正这两行。先生,我仍然无法纠正它。
  • 谢谢先生。我尝试过这个。但它仍然在这里说转换错误,先生。 System.Drawing.Point loc = new System.Drawing.Size((int)Left, (int)Top);
猜你喜欢
  • 2023-03-06
  • 1970-01-01
  • 1970-01-01
  • 2010-12-28
  • 1970-01-01
  • 2010-10-17
  • 1970-01-01
  • 1970-01-01
  • 2012-04-19
相关资源
最近更新 更多