開始使用 WPF 中的筆跡
Windows Presentation Foundation (WPF) 具有筆跡功能,可讓您輕鬆地將數位筆跡併入您的應用程式。
必要條件
若要使用下列範例,請先安裝 Visual Studio 。 它也有助於瞭解如何撰寫基本的 WPF 應用程式。 如需開始使用 WPF 的說明,請參閱 逐步解說:我的第一個 WPF 桌面應用程式 。
快速入門
本節可協助您撰寫收集筆跡的簡單 WPF 應用程式。
有筆跡嗎?
若要建立支援筆跡的 WPF 應用程式:
開啟 Visual Studio。
建立新的 WPF 應用程式 。
在 [ 新增專案 ] 對話方塊中,展開 [已安裝 > 的 Visual C# ] 或 [Visual Basic > Windows 桌面] 類別。 然後,選取 WPF 應用程式 (.NET Framework) 應用程式範本。 輸入名稱,然後選取 [ 確定 ]。
Visual Studio 會建立專案,並在 設計工具中開啟 MainWindow.xaml 。
在
<Grid>
標記之間輸入<InkCanvas/>
。按 F5 在偵錯工具中啟動您的應用程式。
使用手寫筆或滑鼠,在視窗中撰寫 hello world 。
您已撰寫的筆跡相當於只有 12 個擊鍵的 「hello world」 應用程式!
為您的應用程式加香料
讓我們利用 WPF 的某些功能。 使用下列標記取代開頭和結尾 < 視窗 > 標籤之間的所有專案:
<Page>
<InkCanvas Name="myInkCanvas" MouseRightButtonUp="RightMouseUpHandler">
<InkCanvas.Background>
<LinearGradientBrush>
<GradientStop Color="Yellow" Offset="0.0" />
<GradientStop Color="Blue" Offset="0.5" />
<GradientStop Color="HotPink" Offset="1.0" />
</LinearGradientBrush>
</InkCanvas.Background>
</InkCanvas>
</Page>
此 XAML 會在手寫筆跡介面上建立漸層筆刷背景。
在 XAML 後面新增一些程式碼
雖然 XAML 可讓您輕鬆地設計使用者介面,但任何真實世界應用程式都需要新增程式碼來處理事件。 以下是在筆跡上放大以回應滑鼠右鍵的簡單範例。
MouseRightButtonUp
在 XAML 中設定處理常式:<InkCanvas Name="myInkCanvas" MouseRightButtonUp="RightMouseUpHandler">
在 方案總管 中,展開 MainWindow.xaml 並開啟程式碼後置檔案 (MainWindow.xaml.cs 或 MainWindow.xaml.vb)。 新增下列事件處理常式程式碼:
private void RightMouseUpHandler(object sender, System.Windows.Input.MouseButtonEventArgs e) { Matrix m = new Matrix(); m.Scale(1.1d, 1.1d); ((InkCanvas)sender).Strokes.Transform(m, true); }
Private Sub RightMouseUpHandler(ByVal sender As Object, _ ByVal e As System.Windows.Input.MouseButtonEventArgs) Dim m As New Matrix() m.Scale(1.1, 1.1) CType(sender, InkCanvas).Strokes.Transform(m, True) End Sub
執行應用程式。 新增一些筆跡,然後在滑鼠上按一下滑鼠右鍵,或使用手寫筆執行對等的按住。
每次按一下滑鼠右鍵時,顯示器都會放大。
使用程式碼而非 XAML
您可以從程式碼存取所有 WPF 功能。 請遵循下列步驟來建立 WPF 的 「Hello Ink World」 應用程式,完全不使用任何 XAML。
在 Visual Studio 中建立新的主控台應用程式專案。
在 [ 新增專案 ] 對話方塊中,展開 [已安裝 > 的 Visual C# ] 或 [Visual Basic > Windows 桌面] 類別。 然後,選取 主控台應用程式 (.NET Framework) 應用程式範本。 輸入名稱,然後選取 [ 確定 ]。
將下列程式碼貼到 Program.cs 或 Program.vb 檔案中:
using System; using System.Windows; using System.Windows.Controls; class Program : Application { Window win; InkCanvas ic; protected override void OnStartup(StartupEventArgs args) { base.OnStartup(args); win = new Window(); ic = new InkCanvas(); win.Content = ic; win.Show(); } [STAThread] static void Main(string[] args) { new Program().Run(); } }
Imports System.Windows Imports System.Windows.Controls Class Program Inherits Application Private win As Window Private ic As InkCanvas Protected Overrides Sub OnStartup(ByVal args As StartupEventArgs) MyBase.OnStartup(args) win = New Window() ic = New InkCanvas() win.Content = ic win.Show() End Sub End Class Module Module1 Sub Main() Dim prog As New Program() prog.Run() End Sub End Module
以滑鼠右鍵按一下 方案總管 中的 [參考 ],然後選擇 [新增參考 ],以新增 PresentationCore、PresentationFramework 和 WindowsBase 元件的參考。
按 F5 建置應用程式。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應