Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Classe TouchDevice

Representa um único toque produzida por um dedo na tela de toque de entrada.

Namespace:  System.Windows.Input
Assembly:  PresentationCore (em PresentationCore.dll)

[UIPermissionAttribute(SecurityAction.InheritanceDemand, Unrestricted = true)]
public abstract class TouchDevice : InputDevice, 
	IManipulator

O tipo TouchDevice expõe os membros a seguir.

  NomeDescrição
Método protegidoTouchDeviceChamado a partir de construtores em classes derivadas para inicializar o TouchDevice classe.
Superior

  NomeDescrição
Propriedade públicaActiveSourceObtém o PresentationSource que está relatando a entrada para este dispositivo. (Substitui InputDevice.ActiveSource.)
Propriedade públicaCapturedObtém o elemento que capturado a TouchDevice.
Propriedade públicaCaptureModeObtém a diretiva de captura da TouchDevice.
Propriedade públicaDirectlyOverObtém o elemento que o ponto de contato de toque estiver diretamente sobre.
Propriedade públicaDispatcherObtém o Dispatcher esse DispatcherObject está associado. (Herdado de DispatcherObject.)
Propriedade públicaIdObtém o identificador exclusivo do TouchDevice, conforme fornecido pelo sistema operacional.
Propriedade públicaIsActiveObtém um valor que indica se o dispositivo está ativo.
Propriedade públicaTargetObtém o elemento que recebe entrada a partir do TouchDevice. (Substitui InputDevice.Target.)
Superior

  NomeDescrição
Método protegidoActivateAdiciona o TouchDevice para o sistema de mensagens de entrada.
Método públicoCapture(IInputElement)Captura de um toque ao elemento especificado, usando o Element modo de captura.
Método públicoCapture(IInputElement, CaptureMode)Captura de um toque ao elemento especificado, usando o especificado CaptureMode.
Método públicoCheckAccessDetermina se o segmento de chamada tem acesso a este DispatcherObject. (Herdado de DispatcherObject.)
Método protegidoDeactivateRemove o TouchDevice provenientes da entrada de sistema de mensagens.
Método públicoEquals(Object) Verifica se o objeto especificado é igual ao objeto atual. (Herdado de Object.)
Método protegidoFinalize Permite um objeto tentar liberar recursos e executar outras operações de limpeza antes que ele seja recuperado pela coleta de lixo. (Herdado de Object.)
Método públicoGetHashCodeServe como a função de hash padrão. (Herdado de Object.)
Método públicoGetIntermediateTouchPointsQuando substituído em uma classe derivada, retorna todos os pontos de contato que são coletados entre os mais recentes e anteriores de eventos de toque.
Método públicoGetTouchPointRetorna a posição atual do dispositivo sensível ao toque em relação ao elemento especificado.
Método públicoGetType Obtém o Type da instância atual. (Herdado de Object.)
Método protegidoMemberwiseCloneCria uma cópia superficial do Object atual. (Herdado de Object.)
Método protegidoOnCaptureChamado quando um toque é capturado para um elemento.
Método protegidoOnManipulationEndedChamado quando uma manipulação terminou.
Método protegidoOnManipulationStartedChamado quando uma manipulação é iniciada.
Método protegidoReportDownInforma que um toque é pressionado em um elemento.
Método protegidoReportMoveInforma que um toque é movido para um elemento.
Método protegidoReportUpInforma que um toque foi levantado de um elemento.
Método protegidoSetActiveSourceConjuntos de PresentationSource que está relatando a entrada para este dispositivo.
Método públicoSynchronizeForça o TouchDevice para sincronizar a interface do usuário com base os pontos de contato.
Método públicoToStringRetorna uma string que representa o objeto atual. (Herdado de Object.)
Método públicoVerifyAccessImpõe que o segmento de chamada tem acesso a este DispatcherObject. (Herdado de DispatcherObject.)
Superior

  NomeDescrição
Evento públicoActivatedOcorre quando o TouchDevice é adicionado à entrada do sistema de mensagens.
Evento públicoDeactivatedOcorre quando o TouchDevice é removido do sistema de mensagens de entrada.
Evento públicoUpdatedOcorre quando uma mensagem de toque é enviada.
Superior

  NomeDescrição
Implementação explícita da interfaceMétodo particularIManipulator.GetPositionRetorna a posição da IManipulator objeto.
Implementação explícita da interfacePropriedade particularIManipulator.IdObtém o identificador exclusivo do TouchDevice conforme fornecido pelo sistema operacional.
Implementação explícita da interfaceMétodo particularIManipulator.ManipulationEndedOcorre quando uma manipulação terminou.
Superior

Geralmente, você acessa uma TouchDevice usando o TouchEventArgs.TouchDevice propriedade. A TouchDevice representa um único toque em uma tela. Se houver vários "toques", use o Id propriedade para distinguir entre eles.

ObservaçãoObservação

Essa classe contém uma demanda de herança no nível de classe que se aplica a todos os membros. A SecurityException é lançada quando a classe derivada não tem permissão de confiança total. Para obter mais informações sobre as exigências de segurança, consulte Demandas de link e Demandas de herança.

O exemplo a seguir permite que você criar padrões simples em um Canvas arrastando-se dois dedos na tela de toque. Cada toque é representado por um TouchDevice na TouchEventArgs. O padrão é criado por desenhar uma linha entre os pontos de toque que são fornecidos pelos toques. Este exemplo requer uma tela de Touch–compatible do Windows.

A seguinte marcação cria a interface do usuário, que consiste em um Canvas que está centralizado em uma grade e anexa os manipuladores de eventos para os eventos de toque.


<Window x:Class="WpfTouchEventsSample.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="525" Width="525">
    <Grid>
        <Canvas x:Name="canvas1"
                Width="500" Height="500"
                Background="Black"
                TouchDown="canvas_TouchDown"
                TouchMove="canvas_TouchMove"
                TouchUp="canvas_TouchUp" />
    </Grid>
</Window>


O código a seguir manipula os eventos de toque. Quando um toque é pressionado o Canvas, o TouchDevice é capturado para o Canvas. Quando o toque é levantado, a TouchDevice for lançado. Quando um toque se move o Canvas, o Id é verificado. Se a movimentação proveniente do primeiro toque, sua localização é registrada. Se a movimentação proveniente do segundo toque, uma linha é desenhada a partir da posição do primeiro toque à posição do segundo toque.


using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Shapes;
using System.Windows.Controls;

namespace WpfTouchEventsSample
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        // Variables to track the first two touch points 
        // and the ID of the first touch point.
        private Point pt1, pt2 = new Point();
        private int firstTouchId = -1;

        public MainWindow()
        {
            InitializeComponent();
        }

        private void canvas_TouchDown(object sender, TouchEventArgs e)
        {
            Canvas _canvas = (Canvas)sender as Canvas;
            if (_canvas != null)
            {
                _canvas.Children.Clear();
                e.TouchDevice.Capture(_canvas);

                // Record the ID of the first touch point if it hasn't been recorded.
                if (firstTouchId == -1)
                    firstTouchId = e.TouchDevice.Id;
            }
        }

        private void canvas_TouchMove(object sender, TouchEventArgs e)
        {
            Canvas _canvas = (Canvas)sender as Canvas;
            if (_canvas != null)
            {
                TouchPoint tp = e.GetTouchPoint(_canvas);
                // This is the first touch point; just record its position.
                if (e.TouchDevice.Id == firstTouchId)
                {
                    pt1.X = tp.Position.X;
                    pt1.Y = tp.Position.Y;
                }
                // This is not the first touch point; draw a line from the first point to this one.
                else if (e.TouchDevice.Id != firstTouchId)
                {
                    pt2.X = tp.Position.X;
                    pt2.Y = tp.Position.Y;

                    Line _line = new Line();
                    _line.Stroke = new RadialGradientBrush(Colors.White, Colors.Black);
                    _line.X1 = pt1.X;
                    _line.X2 = pt2.X;
                    _line.Y1 = pt1.Y;
                    _line.Y2 = pt2.Y;

                    _line.StrokeThickness = 2;
                    _canvas.Children.Add(_line);
                }
            }
        }

        private void canvas_TouchUp(object sender, TouchEventArgs e)
        {
            Canvas _canvas = (Canvas)sender as Canvas;
            if (_canvas != null && e.TouchDevice.Captured == _canvas)
            {
                _canvas.ReleaseTouchCapture(e.TouchDevice);
            }
        }
    }
}


.NET Framework

Com suporte em: 4.5, 4

.NET Framework Client Profile

Com suporte em: 4

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Função Server Core sem suporte), Windows Server 2008 R2 (Função Server Core com suporte com o SP1 ou posterior, Itanium sem suporte)

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte Requisitos do sistema do .NET Framework.

Qualquer estático (Shared no Visual Basic) membro público desse tipo é thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2014 Microsoft