Wprowadzenie do pisma oddyskowego w WPF

Program Windows Presentation Foundation (WPF) ma funkcję pisma oddyskowego, która ułatwia dołączanie cyfrowego pisma oddyskowego do aplikacji.

Wymagania wstępne

Aby użyć poniższych przykładów, najpierw zainstaluj program Visual Studio. Pomaga również wiedzieć, jak pisać podstawowe aplikacje WPF. Aby uzyskać pomoc dotyczącą rozpoczynania pracy z platformą WPF, zobacz Przewodnik: Moja pierwsza aplikacja klasyczna WPF.

Szybkie uruchamianie

Ta sekcja ułatwia napisanie prostej aplikacji WPF, która zbiera atrament.

Masz atrament?

Aby utworzyć aplikację WPF, która obsługuje atrament:

  1. Otwórz program Visual Studio.

  2. Utwórz nową aplikację WPF.

    W oknie dialogowym Nowy projekt rozwiń kategorię Zainstalowane visual>C# lub Visual Basic>Windows Desktop. Następnie wybierz szablon aplikacji WPF (.NET Framework). Wprowadź nazwę, a następnie wybierz przycisk OK.

    Program Visual Studio tworzy projekt, a plik MainWindow.xaml zostanie otwarty w projektancie.

  3. Wpisz <InkCanvas/> między tagami <Grid> .

    XAML designer with InkCanvas tag

  4. Naciśnij klawisz F5 , aby uruchomić aplikację w debugerze.

  5. Za pomocą rysika lub myszy napisz hello world w oknie.

Napisaliśmy atrament odpowiednik aplikacji "hello world" z tylko 12 naciśnięciami klawiszy!

Doprawić aplikację

Skorzystajmy z niektórych funkcji WPF. Zastąp wszystkie elementy między tagami otwierania i zamykania <okna> następującymi znacznikami:

<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>

Ten kod XAML tworzy tło pędzla gradientowego na powierzchni pisma odręcznego.

Gradient colors on inking surface in WPF app

Dodawanie kodu za kodem XAML

Chociaż język XAML ułatwia projektowanie interfejsu użytkownika, każda rzeczywista aplikacja musi dodać kod do obsługi zdarzeń. Oto prosty przykład, który powiększa atrament w odpowiedzi na kliknięcie prawym przyciskiem myszy.

  1. Ustaw procedurę MouseRightButtonUp obsługi w języku XAML:

    <InkCanvas Name="myInkCanvas" MouseRightButtonUp="RightMouseUpHandler">
    
  2. W Eksplorator rozwiązań rozwiń węzeł MainWindow.xaml i otwórz plik za kodem (MainWindow.xaml.cs lub MainWindow.xaml.vb). Dodaj następujący kod procedury obsługi zdarzeń:

    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
    
  3. Uruchom aplikację. Dodaj jakiś atrament, a następnie kliknij prawym przyciskiem myszy lub wykonaj odpowiednik naciśnięcia i blokady za pomocą rysika.

    Ekran powiększa się za każdym razem, gdy klikniesz prawym przyciskiem myszy.

Używanie kodu proceduralnego zamiast XAML

Dostęp do wszystkich funkcji WPF można uzyskać z poziomu kodu proceduralnego. Wykonaj następujące kroki, aby utworzyć aplikację "Hello Ink World" dla platformy WPF, która w ogóle nie używa żadnego kodu XAML.

  1. Utwórz nowy projekt aplikacji konsolowej w programie Visual Studio.

    W oknie dialogowym Nowy projekt rozwiń kategorię Zainstalowane visual>C# lub Visual Basic>Windows Desktop. Następnie wybierz szablon aplikacji konsolowej (.NET Framework). Wprowadź nazwę, a następnie wybierz przycisk OK.

  2. Wklej następujący kod do pliku Program.cs lub 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
    
  3. Dodaj odwołania do zestawów PresentationCore, PresentationFramework i WindowsBase, klikając prawym przyciskiem myszy pozycję Odwołania w Eksplorator rozwiązań i wybierając polecenie Dodaj odwołanie.

    Reference Manager showing PresentationCore and PresentationFramework

  4. Skompiluj aplikację, naciskając klawisz F5.

Zobacz też