Sdílet prostřednictvím


Začínáme s inkoustem ve WPF

Windows Presentation Foundation (WPF) má funkci rukopisu, která usnadňuje začlenění digitálního rukopisu do aplikace.

Požadavky

Pokud chcete použít následující příklady, nejprve nainstalujte visual studio. Pomáhá také vědět, jak psát základní aplikace WPF. Nápovědu k zahájení práce s WPF najdete v tématu Návod: Moje první desktopová aplikace WPF.

Rychlý start

Tato část vám pomůže napsat jednoduchou aplikaci WPF, která shromažďuje rukopis.

Máte inkoust?

Vytvoření aplikace WPF, která podporuje rukopis:

  1. Otevřete Visual Studio.

  2. Vytvořte novou aplikaci WPF .

    V dialogovém okně Nový projekt rozbalte kategorii Nainstalované>Visual C# nebo Visual Basic>Windows Desktop. Pak vyberte šablonu aplikace WPF (.NET Framework). Zadejte název a pak vyberte OK.

    Visual Studio vytvoří projekt a MainWindow.xaml se otevře v návrhovém prostředí.

  3. Zadejte <InkCanvas/> mezi značkami <Grid>.

    návrhář XAML se značkou InkCanvas

  4. Stisknutím klávesy F5 spusťte aplikaci v ladicím programu.

  5. Pomocí pera nebo myši napište hello world v okně.

Napsali jste ekvivalent aplikace "hello world" s pouhými 12 stisky kláves!

Oživte svou aplikaci

Pojďme využít některé funkce WPF. Nahraďte všechno mezi otevíracími a uzavíracími <Window> značkami následujícím označením:

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

Tento XAML vytvoří pozadí štětce s přechodovým efektem na povrchu pro psaní.

přechodových barev na povrchu rukopisu v aplikaci WPF

Přidejte trochu kódu za XAML

I když XAML usnadňuje návrh uživatelského rozhraní, každá skutečná aplikace potřebuje přidat kód pro zpracování událostí. Tady je jednoduchý příklad, který při kliknutí pravým tlačítkem myši přiblíží inkoust.

  1. Nastavte obslužnou rutinu MouseRightButtonUp v XAML.

    <InkCanvas Name="myInkCanvas" MouseRightButtonUp="RightMouseUpHandler">
    
  2. V Průzkumníku řešenírozbalte MainWindow.xaml a otevřete soubor kódu (MainWindow.xaml.cs nebo MainWindow.xaml.vb). Přidejte následující kód obslužné rutiny události:

    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. Spusťte aplikaci. Přidejte nějaký rukopis a potom klikněte pravým tlačítkem myši nebo proveďte ekvivalent stisknutí a podržení perem.

    Zobrazení se při každém kliknutí pravým tlačítkem myši přibližuje.

Použití procedurálního kódu místo XAML

Ke všem funkcím WPF můžete přistupovat z procedurálního kódu. Tímto postupem vytvoříte aplikaci Hello Ink World pro WPF, která vůbec nepoužívá xaml.

  1. Vytvořte nový projekt konzolové aplikace v sadě Visual Studio.

    V dialogovém okně Nový projekt rozbalte kategorii Nainstalované>Visual C# nebo Visual Basic>Windows Desktopové. Pak vyberte šablonu aplikace konzolová aplikace (.NET Framework). Zadejte název a pak vyberte OK.

  2. Do souboru Program.cs nebo Program.vb vložte následující kód:

    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. Přidejte odkazy na sestavení PresentationCore, PresentationFramework a WindowsBase tak, že kliknete pravým tlačítkem na Reference v průzkumníku řešení a zvolíte Přidat odkaz.

    Reference Manager zobrazující PresentationCore a PresentationFramework

  4. Sestavte aplikaci stisknutím F5.

Viz také