WPF编程,通过控制台Console输出过程信息的一种方法。

方法一

1、在WPF项目中增加一个新的类文件,粘贴如下代码:

 public static class ConsoleManager
    {
        private const string Kernel32_DllName = "kernel32.dll";
        [DllImport(Kernel32_DllName)]
        private static extern bool AllocConsole();
        [DllImport(Kernel32_DllName)]
        private static extern bool FreeConsole();
        [DllImport(Kernel32_DllName)]
        private static extern IntPtr GetConsoleWindow();
        [DllImport(Kernel32_DllName)]
        private static extern int GetConsoleOutputCP();
        public static bool HasConsole
        {
            get
            {
                return GetConsoleWindow() != IntPtr.Zero;
            }
        }
        /// Creates a new console instance if the process is not attached to a console already.  
        public static void Show()
        {
#if DEBUG
            if (!HasConsole)
            {
                AllocConsole();
                InvalidateOutAndError();
            }
#endif
        }
        /// If the process has a console attached to it, it will be detached and no longer visible. Writing to the System.Console is still possible, but no output will be shown.   
        public static void Hide()
        {
#if DEBUG
            if (HasConsole)
            {
                SetOutAndErrorNull();
                FreeConsole();
            }
#endif
        }
        public static void Toggle()
        {
            if (HasConsole)
            {
                Hide();
            }
            else
            {
                Show();
            }
        }
        static void InvalidateOutAndError()
        {
            Type type = typeof(System.Console);
            System.Reflection.FieldInfo _out = type.GetField("_out",
                System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic);
            System.Reflection.FieldInfo _error = type.GetField("_error",
                System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic);
            System.Reflection.MethodInfo _InitializeStdOutError = type.GetMethod("InitializeStdOutError",
                System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic);
            Debug.Assert(_out != null);
            Debug.Assert(_error != null);
            Debug.Assert(_InitializeStdOutError != null);
            _out.SetValue(null, null);
            _error.SetValue(null, null);
            _InitializeStdOutError.Invoke(null, new object[] { true });
        }
        static void SetOutAndErrorNull()
        {
            Console.SetOut(TextWriter.Null);
            Console.SetError(TextWriter.Null);
        }
    }

2、调用

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            ConsoleManager.Show();//打开控制台窗口
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine("这是测试信息");
        }

3、更改项目属性

  • 右击项目,在应用程序选项卡中暂时切换输出类型为:控制台应用程序
    在这里插入图片描述

4、运行效果

在这里插入图片描述

方法二:使用Trace

1、直接使用Trace

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            Trace.WriteLine("这是测试信息");
        }

2、效果

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: WPF编程宝典是一本由CSDN(全球最大的中文IT社区)出版的帮助读者学习和掌握WPF(Windows Presentation Foundation)编程技术的书籍。WPF一种基于.NET框架的、用于创建富客户端应用程序的技术。 该书的目的是向读者介绍WPF的基本概念、核心特性和高级编程技巧,并通过大量的示例代码和实战案例来帮助读者深入理解和应用WPF。书中涵盖了WPF的各个方面,包括界面设计、自定义控件、数据绑定、动画效果、布局管理、响应式编程等内容。 WPF编程宝典的作者是一些经验丰富的软件开发者和WPF专家,他们从实际开发经验出发,结合自己对WPF的深入研究和理解,将复杂的技术问题用简明易懂的语言解释,帮助读者克服各种编程难题。 在这本书中,读者将学习如何使用WPF创建现代化、漂亮的用户界面;如何利用WPF的强大功能实现数据绑定、命令绑定、样式和模板等高级特性;如何使用WPF的动画效果和视觉效果提升用户体验;如何通过WPF实现自定义控件和自定义布局管理器等等。 总之,WPF编程宝典是一本权威的、实用的WPF编程指导书籍,适合各类软件开发者以及对WPF技术感兴趣的读者阅读和学习。通过阅读该书,读者能够系统地学习和掌握WPF编程技术,提升自己的软件开发能力。 ### 回答2: WPF编程宝典是CSDN上一本非常受欢迎的教程书籍,它是一个面向WPF编程的指南。WPF编程宝典提供了以实例为基础的教学方式,通过逐步引导读者完成一系列的编程实践,帮助读者理解和掌握WPF框架的核心概念和编程技巧。 WPF编程宝典主要分为几个部分,首先介绍了WPF框架与XAML语言的基础知识,包括界面布局、数据绑定和资源管理等内容。然后深入探讨WPF中的控件和自定义控件的创建及使用方法,以及动画、转换和样式的应用。此外,WPF编程宝典还详细介绍了WPF中的命令模型、MVVM设计模式和异步编程等高级主题,帮助读者构建更加灵活和可扩展的WPF应用程序。 通过阅读WPF编程宝典,读者可以学习到使用WPF开发各种桌面应用程序的基本技能,无论是普通的应用程序还是图形化的数据展示应用程序。该书详细且有条理的内容安排,适合从初学者到有一定WPF经验的开发人员使用。此外,WPF编程宝典还提供了丰富的实例代码和示例项目,读者可以通过实践来加深对WPF编程的理解和应用。 总之,WPF编程宝典是CSDN上的一本权威教程书籍,对于想要学习和掌握WPF编程的开发人员来说是一本不可或缺的指南。无论是从基础知识到高级技术,该书都能为读者提供全面和系统的学习资源,帮助他们成为熟练的WPF开发者。 ### 回答3: WPF编程宝典是一本由CSDN出版社出版的WPF技术书籍。该书主要面向想要学习和掌握WPF编程的开发者和爱好者。WPF(Windows Presentation Foundation)是微软推出的一种用于创建用户界面的技术,它提供了丰富的视觉效果和交互方式。 这本书涵盖了WPF的各个方面,从基本概念到高级特性都有涉及。首先,它介绍了WPF的基本原理、架构和工作原理,帮助读者建立对WPF的整体认识。然后,书中详细介绍了WPF的控件库、布局方式和样式模板的应用,这些对于开发各种类型的用户界面非常重要。 此外,WPF编程宝典还讲解了WPF的数据绑定、命令系统和MVVM(Model-View-ViewModel)模式,让读者能够更加高效地处理数据和用户交互。书中还提供了大量的实例代码和工程案例,帮助读者通过实践学习和掌握WPF编程技巧。 总的来说,WPF编程宝典是一本全面而权威的WPF技术书籍,适合那些想要深入学习WPF的开发者和爱好者阅读。通过阅读该书,读者可以系统地学习WPF的各个方面,掌握WPF编程的核心概念和技巧,从而能够更好地开发出现代化、美观和高效的用户界面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值