即使引用了PresentationCore.dll,也无法识别“使用System.Windows.Media”

时间:2011-12-21 05:36:14

标签: c# .net

我运行的是Windows XP Service Pack 3. Visual Studio 2010. C#项目。

我在类项目中包含了“Using System.Windows.Media”和“Using System.Windows.Media.Imaging”。我还添加了PresentationCore.dll参考。这是在解决方案窗口完成的。

所谓的“Intellisense”正在使来自这些命名空间的所有函数变为红色。我没做什么修复它。为什么编译器不能识别PresentationCore引用?????

我需要快速解决这个问题。

感谢所有善意帮助我的人。

using System.Windows
using System.IO;
using System.Windows;
using System.Windows.Media;
using System.Windows.Media.Imaging;

namespace TextEditor
{
    public partial class App : Application
    {
        AppDomain.CurrentDomain.UnhandledException += UnhandledExceptionOccurred;
    }

    private static void UnhandledExceptionOccurred(object sender, UnhandledExceptionEventArgs e)
    {
        Window win = Current.MainWindow;

        RenderTargetBitmap bmp = new RenderTargetBitmap((int) win.Width, (int) win.Height, 96, 96, PixelFormats.Pbgra32);

        bmp.Render(win);

        string errorPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ErrorReports");

        if(!Directory.Exists(errorPath))
            Directory.CreateDirectory(errorPath);

        BitmapEncoder encoder = new PngBitmapEncoder();
        encoder.Frames.Add(BitmapFrame.Create(bmp));

        string filePath = Path.Combine(errorPath, string.Format("{0:MMddyyyyhhmmss}.png", DateTime.Now));

        using(Stream stream = File.Create(filePath))
        {
             encoder.Save(stream);
        }

    }
}

1 个答案:

答案 0 :(得分:1)

首先,即使方法是静态的,也不能将方法与类分开。尝试做类似的事情:

    namespace TestProject
    {
        public partial class App : Application
        {
            public void Init()
            {
                AppDomain.CurrentDomain.UnhandledException += UnhandledExceptionOccurred;
            }

        private static void UnhandledExceptionOccurred(object sender, UnhandledExceptionEventArgs e)
        {
            Window win = Current.MainWindow;

            RenderTargetBitmap bmp = new RenderTargetBitmap((int)win.Width, (int)win.Height, 96, 96, PixelFormats.Pbgra32);

            bmp.Render(win);

            string errorPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ErrorReports");

            if (!Directory.Exists(errorPath))
                Directory.CreateDirectory(errorPath);

            BitmapEncoder encoder = new PngBitmapEncoder();
            encoder.Frames.Add(BitmapFrame.Create(bmp));

            string filePath = Path.Combine(errorPath, string.Format("{0:MMddyyyyhhmmss}.png", DateTime.Now));

            using (Stream stream = File.Create(filePath))
            {
                encoder.Save(stream);
            }
        }
    }
}