当前位置:   article > 正文

白骑士的C#教学实战项目篇 4.2 图形用户界面(GUI)应用_visual studio如何绘制gui界面

visual studio如何绘制gui界面

系列目录

上一篇:白骑士的C#教学实战项目篇 4.1 控制台应用程序

        在这一部分,我们将从简单的控制台应用程序过渡到图形用户界面(GUI)应用程序。GUI 应用程序更加直观和用户友好,是现代软件开发的核心内容。我们将介绍如何使用 Windows Forms 和 Windows Presentation Foundation (WPF) 开发桌面应用程序,并通过开发一个记事本应用项目来巩固所学知识。

        图形用户界面(GUI)应用程序使用户可以通过图形元素与应用程序进行交互。这些图形元素包括窗口、按钮、文本框等。在 C# 中,主要有两种常见的 GUI 开发框架:Windows Forms 和 Windows Presentation Foundation (WPF)。

使用 Windows Forms 开发桌面应用

        Windows Forms 是 .NET 框架的一部分,用于创建具有图形界面的桌面应用程序。它简单易用,适合快速开发小型应用程序。

创建一个简单的 Windows Forms 应用程序

  1. 新建项目:在 Visual Studio 中,选择 “创建新项目”,选择 “Windows Forms App (.NET Framework)” 模板。
  2. 设计界面:使用拖放方式添加控件,例如按钮和文本框。
  3. 编写代码:
    1. using System;
    2. using System.Windows.Forms;
    3. public class MainForm : Form
    4. {
    5.     private Button button;
    6.     private TextBox textBox;
    7.     public MainForm()
    8.     {
    9.         button = new Button();
    10.         button.Text = "Click Me";
    11.         button.Location = new System.Drawing.Point(50, 50);
    12.         button.Click += Button_Click;
    13.         textBox = new TextBox();
    14.         textBox.Location = new System.Drawing.Point(50, 100);
    15.         textBox.Width = 200;
    16.         Controls.Add(button);
    17.         Controls.Add(textBox);
    18.     }
    19.     private void Button_Click(object sender, EventArgs e)
    20.     {
    21.         textBox.Text = "Hello, Windows Forms!";
    22.     }
    23.     [STAThread]
    24.     static void Main()
    25.     {
    26.         Application.EnableVisualStyles();
    27.         Application.SetCompatibleTextRenderingDefault(false);
    28.         Application.Run(new MainForm());
    29.     }
    30. }

        在这个示例中,创建了一个包含按钮和文本框的简单窗体应用程序。当用户点击按钮时,文本框中会显示 “Hello, Windows Forms!”。

使用 WPF 开发现代界面应用

        Windows Presentation Foundation (WPF) 是一个用于构建现代桌面应用程序的 UI 框架,提供了更丰富的图形和动画支持。

创建一个简单的 WPF 应用程序

  1. 新建项目:在 Visual Studio 中,选择 “创建新项目”,选择 “WPF App (.NET Core)” 模板。
  2. 设计界面:在 XAML 文件中定义界面元素:
    1. <Window x:Class="WpfApp.MainWindow"
    2.         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    3.         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    4.         Title="MainWindow" Height="200" Width="300">
    5.     <Grid>
    6.         <Button Name="button" Content="Click Me" Width="100" Height="30" VerticalAlignment="Top" Margin="100,50,0,0" Click="Button_Click"/>
    7.         <TextBox Name="textBox" Width="200" Height="30" VerticalAlignment="Top" Margin="50,100,0,0"/>
    8.     </Grid>
    9. </Window>
  3. 编写代码:
    1. using System.Windows;
    2. namespace WpfApp
    3. {
    4.     public partial class MainWindow : Window
    5.     {
    6.         public MainWindow()
    7.         {
    8.             InitializeComponent();
    9.         }
    10.         private void Button_Click(object sender, RoutedEventArgs e)
    11.         {
    12.             textBox.Text = "Hello, WPF!";
    13.         }
    14.     }
    15. }

        在这个示例中,创建了一个包含按钮和文本框的简单 WPF 应用程序。当用户点击按钮时,文本框中会显示 “Hello, WPF!”。

实践项目:开发一个记事本应用

        现在我们将综合运用 Windows Forms 和 WPF 技术,开发一个简单的记事本应用程序。这个应用程序将包括基本的文本编辑功能,如新建、打开、保存和文本编辑。

使用 Windows Forms 开发记事本应用

  1. 设计界面:在设计视图中添加菜单栏、文本框和相关控件。
  2. 编写代码:
    1. using System;
    2. using System.IO;
    3. using System.Windows.Forms;
    4. public class NotepadForm : Form
    5. {
    6.     private MenuStrip menuStrip;
    7.     private ToolStripMenuItem fileMenu;
    8.     private ToolStripMenuItem newMenuItem;
    9.     private ToolStripMenuItem openMenuItem;
    10.     private ToolStripMenuItem saveMenuItem;
    11.     private TextBox textBox;
    12.     public NotepadForm()
    13.     {
    14.         menuStrip = new MenuStrip();
    15.         fileMenu = new ToolStripMenuItem("File");
    16.         newMenuItem = new ToolStripMenuItem("New", null, NewFile);
    17.         openMenuItem = new ToolStripMenuItem("Open", null, OpenFile);
    18.         saveMenuItem = new ToolStripMenuItem("Save", null, SaveFile);
    19.         fileMenu.DropDownItems.Add(newMenuItem);
    20.         fileMenu.DropDownItems.Add(openMenuItem);
    21.         fileMenu.DropDownItems.Add(saveMenuItem);
    22.         menuStrip.Items.Add(fileMenu);
    23.         textBox = new TextBox();
    24.         textBox.Multiline = true;
    25.         textBox.Dock = DockStyle.Fill;
    26.         Controls.Add(textBox);
    27.         Controls.Add(menuStrip);
    28.         MainMenuStrip = menuStrip;
    29.     }
    30.     private void NewFile(object sender, EventArgs e)
    31.     {
    32.         textBox.Clear();
    33.     }
    34.     private void OpenFile(object sender, EventArgs e)
    35.     {
    36.         using (OpenFileDialog openFileDialog = new OpenFileDialog())
    37.         {
    38.             if (openFileDialog.ShowDialog() == DialogResult.OK)
    39.             {
    40.                 textBox.Text = File.ReadAllText(openFileDialog.FileName);
    41.             }
    42.         }
    43.     }
    44.     private void SaveFile(object sender, EventArgs e)
    45.     {
    46.         using (SaveFileDialog saveFileDialog = new SaveFileDialog())
    47.         {
    48.             if (saveFileDialog.ShowDialog() == DialogResult.OK)
    49.             {
    50.                 File.WriteAllText(saveFileDialog.FileName, textBox.Text);
    51.             }
    52.         }
    53.     }
    54.     [STAThread]
    55.     static void Main()
    56.     {
    57.         Application.EnableVisualStyles();
    58.         Application.SetCompatibleTextRenderingDefault(false);
    59.         Application.Run(new NotepadForm());
    60.     }
    61. }

使用 WPF 开发记事本应用

  1. 设计界面:在 XAML 文件中定义界面元素:
    1. <Window x:Class="NotepadApp.MainWindow"
    2.         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    3.         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    4.         Title="Notepad" Height="450" Width="800">
    5.     <DockPanel>
    6.         <Menu DockPanel.Dock="Top">
    7.             <MenuItem Header="File">
    8.                 <MenuItem Header="New" Click="NewFile"/>
    9.                 <MenuItem Header="Open" Click="OpenFile"/>
    10.                 <MenuItem Header="Save" Click="SaveFile"/>
    11.             </MenuItem>
    12.         </Menu>
    13.         <TextBox Name="textBox" AcceptsReturn="True" AcceptsTab="True" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto"/>
    14.     </DockPanel>
    15. </Window>
  2. 编写代码:
    1. using System;
    2. using System.IO;
    3. using System.Windows;
    4. namespace NotepadApp
    5. {
    6.     public partial class MainWindow : Window
    7.     {
    8.         public MainWindow()
    9.         {
    10.             InitializeComponent();
    11.         }
    12.         private void NewFile(object sender, RoutedEventArgs e)
    13.         {
    14.             textBox.Clear();
    15.         }
    16.         private void OpenFile(object sender, RoutedEventArgs e)
    17.         {
    18.             Microsoft.Win32.OpenFileDialog openFileDialog = new Microsoft.Win32.OpenFileDialog();
    19.             if (openFileDialog.ShowDialog() == true)
    20.             {
    21.                 textBox.Text = File.ReadAllText(openFileDialog.FileName);
    22.             }
    23.         }
    24.         private void SaveFile(object sender, RoutedEventArgs e)
    25.         {
    26.             Microsoft.Win32.SaveFileDialog saveFileDialog = new Microsoft.Win32.SaveFileDialog();
    27.             if (saveFileDialog.ShowDialog() == true)
    28.             {
    29.                 File.WriteAllText(saveFileDialog.FileName, textBox.Text);
    30.             }
    31.         }
    32.     }
    33. }

总结

        在本节中,我们从基本的控制台应用程序逐步过渡到图形用户界面(GUI)应用程序,通过 Windows Forms 和 WPF 这两种不同的框架来开发桌面应用程序。通过开发一个记事本应用项目,我们综合运用了所学知识,展示了如何设计和实现一个实际的应用程序。继续练习和扩展这些项目,可以帮助您进一步提高 C# 编程技能,为更复杂的项目打下坚实的基础。

下一篇:白骑士的C#教学实战项目篇 4.3 Web开发​​​​​​​

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/1010826
推荐阅读
相关标签
  

闽ICP备14008679号