iT邦幫忙

2025 iThome 鐵人賽

DAY 15
0

經過前面 14 天的練習,我們已經具備了 C# 的基礎知識,會寫方法、物件導向、集合、LINQ,也學會了呼叫 API 和存資料。
接下來,我們要把這些能力結合起來,開始做一個 有 UI 的桌面應用程式


建立 WPF 專案

  1. 開啟 Visual Studio

  2. 新增專案 → 選擇 WPF App (.NET Framework)WPF App (.NET Core)

    • 如果是 .NET Framework 版本,選 4.8.1
    • 如果是 .NET Core/5+/6+,選最新的 LTS 版本
  3. 專案建立後,會看到這些檔案:

    • App.xaml / App.xaml.cs:應用程式入口
    • MainWindow.xaml / MainWindow.xaml.cs:主視窗
    • Properties 資料夾:專案設定

第一次執行,你會看到一個空白的視窗,這就是 WPF 的起點。


XAML 基礎

WPF 的特色是使用 XAML (Extensible Application Markup Language) 來描述 UI。

範例:

<Window x:Class="MyStockApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="選股工具" Height="350" Width="525">
    <Grid>
        <TextBlock Text="Hello, WPF!" 
                   HorizontalAlignment="Center" 
                   VerticalAlignment="Center"
                   FontSize="24"/>
    </Grid>
</Window>

這段程式會顯示一個標題為「選股工具」的視窗,中間有文字 "Hello, WPF!"。

XAML 的特色

  • 層級式結構:每個控制項可以包含子元素
  • 屬性設定:用 XML 屬性方式定義外觀(例如寬度、高度、字型大小)
  • 支援 Data Binding(資料綁定),是 MVVM 的核心

MVVM 架構簡介

WPF 常用的架構是 MVVM (Model-View-ViewModel),它把程式分成三層:

  1. Model:資料與商業邏輯(例如 StockProfile、LiteDB 存取)
  2. View:使用者介面(XAML 視覺設計)
  3. ViewModel:負責把資料準備好,提供給 View 顯示,同時接收使用者操作

舉例:

  • ModelStockProfile { Code, Name, Industry }
  • View:一個 DataGrid 顯示股票清單
  • ViewModel:提供 ObservableCollection<StockProfile>,當集合更新時,View 自動刷新

MVVM 的優點

  • 邏輯與 UI 分離:程式更乾淨,不會像 WinForms 那樣把一堆邏輯塞進按鈕事件
  • 容易測試:ViewModel 可以單獨測試
  • 擴充性高:UI 跟邏輯解耦,未來改 UI 不需要動邏輯

小結

今天我們學會了:

  • 如何建立 WPF 專案
  • XAML 是什麼,基本語法長什麼樣子
  • MVVM 架構的核心概念與優點

預告

明天(Day 16),我們要開始在 WPF 畫面上放置控制項(Button、TextBox、ListBox),並讓它們顯示基本資料,逐步搭建我們的「選股工具」UI。


上一篇
Day 14 - 本地資料儲存:LiteDB 簡介
系列文
30天快速上手製作WPF選股工具 — 從C#基礎到LiteDB與Web API整合15
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言