Compartilhar via


Introdução à Tinta no WPF

O Windows Presentation Foundation (WPF) tem um recurso de tinta que facilita a incorporação de tinta digital em seu aplicativo.

Pré-requisitos

Para usar os exemplos a seguir, primeiro instale o Visual Studio. Ele também ajuda a saber como escrever aplicativos WPF básicos. Para obter ajuda para começar a usar o WPF, consulte Passo a passo: meu primeiro aplicativo da área de trabalho do WPF.

Início Rápido

Esta seção ajuda você a escrever um aplicativo WPF simples que coleta tinta.

Tem tinta?

Para criar um aplicativo WPF que dê suporte à tinta:

  1. Abra o Visual Studio.

  2. Crie um novo aplicativo WPF.

    Na caixa de diálogo Novo Projeto, expanda a categoria Instalado>Visual C# ou Visual Basic>Área de Trabalho do Windows. Em seguida, selecione o modelo de aplicativo do Aplicativo WPF (.NET Framework ). Insira um nome e selecione OK.

    O Visual Studio cria o projeto e MainWindow.xaml é aberto no designer.

  3. Digite <InkCanvas/> entre as <Grid> tags.

    Designer XAML com marca InkCanvas

  4. Pressione F5 para iniciar seu aplicativo no depurador.

  5. Usando uma caneta ou mouse, escreva hello world na janela.

Você escreveu o equivalente a um aplicativo 'olá, mundo' em tinta com apenas 12 toques de tecla!

Dê um toque especial ao seu aplicativo

Vamos aproveitar alguns recursos do WPF. Substitua tudo entre as marcas de <Window> de abertura e fechamento pela seguinte marcação:

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

Esse XAML cria uma tela de fundo de pincel de gradiente em sua superfície de escrita à tinta.

Cores de gradiente na superfície de escrita à tinta no aplicativo WPF

Adicionar algum código por trás do XAML

Embora o XAML facilite muito o design da interface do usuário, qualquer aplicativo do mundo real precisa adicionar código para lidar com eventos. Aqui está um exemplo simples que amplia a tinta em resposta a um clique com o botão direito do mouse.

  1. Defina o MouseRightButtonUp manipulador em seu XAML:

    <InkCanvas Name="myInkCanvas" MouseRightButtonUp="RightMouseUpHandler">
    
  2. No Gerenciador de Soluções, expanda MainWindow.xaml e abra o arquivo code-behind (MainWindow.xaml.cs ou MainWindow.xaml.vb). Adicione o seguinte código do manipulador de eventos:

    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. Execute o aplicativo. Adicione um pouco de tinta e clique com o botão direito do mouse ou execute um equivalente de pressionar e segurar com uma caneta.

    A exibição é ampliada sempre que você clica com o botão direito do mouse.

Usar código de procedimento em vez de XAML

Você pode acessar todos os recursos do WPF a partir do código procedural. Siga estas etapas para criar um aplicativo "Hello Ink World" para WPF que não use nenhum XAML.

  1. Crie um novo projeto de aplicativo de console no Visual Studio.

    Na caixa de diálogo Novo Projeto, expanda a categoria Instalado>Visual C# ou Visual Basic>Área de Trabalho do Windows. Em seguida, selecione o modelo de aplicativo do Aplicativo de Console (.NET Framework ). Insira um nome e selecione OK.

  2. Cole o seguinte código no arquivo Program.cs ou 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. Adicione referências aos assemblies PresentationCore, PresentationFramework e WindowsBase clicando com o botão direito do mouse em Referências no Gerenciador de Soluções e escolhendo Adicionar Referência.

    Gerenciador de Referências mostrando PresentationCore e PresentationFramework

  4. Crie o aplicativo pressionando F5.

Consulte também