Task – třída
Představuje kolekci příkazů a vazby na vstupní příkazy.
Hierarchie dědičnosti
System.Object
Microsoft.Windows.Design.Interaction.Task
Obor názvů: Microsoft.Windows.Design.Interaction
Sestavení: Microsoft.Windows.Design.Interaction (v Microsoft.Windows.Design.Interaction.dll)
Syntaxe
'Deklarace
Public Class Task
public class Task
public ref class Task
type Task = class end
public class Task
Typ Task zveřejňuje následující členy.
Konstruktory
Název | Popis | |
---|---|---|
![]() |
Task | Inicializuje novou instanci Task Třída |
Na začátek
Vlastnosti
Název | Popis | |
---|---|---|
![]() |
AdornerFilter | Získá nebo nastaví filtr, který slouží k filtrování sady adorners vidět okna Návrhář přístupů test algoritmu. |
![]() |
CommandBindings | Získává CommandBindingCollection pro úkol. |
![]() |
Cursor | Získá nebo nastaví kurzor na úkol. |
![]() |
Description | Získá nebo nastaví popis této úlohy. |
![]() |
InputBindings | Získává InputBindingCollection pro úkol. |
![]() |
IsFocused | Získá hodnotu označující, zda tento úkol má fokus. |
![]() |
ModelFilter | Získá nebo nastaví filtr, který slouží k filtrování sady položek modelu vidět okna Návrhář přístupů test algoritmu. |
![]() |
ToolCommandBindings | Získává ToolCommandBindingCollection pro úkol. |
Na začátek
Metody
Název | Popis | |
---|---|---|
![]() |
BeginFocus | Nastavit fokus na daný úkol začne. |
![]() |
Complete | Změny provedené v době, kdy tento úkol fokus dokončí. |
![]() |
Equals | Určuje, zda zadaná Object se rovná aktuální Object. (Zděděno z Object.) |
![]() |
Finalize | Umožňuje zkuste uvolnit prostředky a provádět další operace vyčištění před je převzaty systémem pro uvolnění objektu. (Zděděno z Object.) |
![]() |
GetHashCode | Slouží jako funkce hash určitého typu. (Zděděno z Object.) |
![]() |
GetType | Získává Type aktuální instance. (Zděděno z Object.) |
![]() |
MemberwiseClone | Vytvoří kopii aktuální Object. (Zděděno z Object.) |
![]() |
OnCompleted | Zvýší Completed událostí. |
![]() |
OnFocusDeactivated | Zvýší FocusDeactivated událostí. |
![]() |
OnReverted | Zvýší Reverted událostí. |
![]() |
Revert | Tento úkol se vrátí. |
![]() |
ToString | Vrátí řetězec, který představuje aktuální objekt. (Zděděno z Object.) |
Na začátek
Události
Název | Popis | |
---|---|---|
![]() |
Completed | Vyvolá se při dokončení tohoto úkolu. |
![]() |
FocusDeactivated | Vyvolá se při zaměření tohoto úkolu je deaktivován. |
![]() |
Reverted | Vyvolá se při vráceny tohoto úkolu. |
Na začátek
Poznámky
A Task představuje kolekci vstupní vazby a příkazy, které lze přidružit prvek uživatelského rozhraní v návrháři. Všechny uživatele, pokud je aktivní úlohu úkolu je přesměrován vstup, a mohou být provedeny příkazy, které jsou spojeny s vstupní vazby. Po deaktivaci úkol vrátí do normálního vstupu uživatele.
Můžete adorn úkol s RequiresServiceAttribute a RequiresContextItemAttribute atributy. Pokud tak učiníte, bude úkol použit, pokud jsou k dispozici potřebné služby a položky v kontextu.
Příklady
Následující příklad kódu ukazuje způsob použití třídy Task. Další informace naleznete v tématu How to: Create a Surrogate Policy.
Imports System
Imports System.Collections.Generic
Imports System.Windows
Imports System.Windows.Input
Imports Microsoft.Windows.Design.Interaction
' A DockPanelMarginTask is attached to to the adorner
' offered by the DockPanelAdornerProvider class. When
' you drag the adorner, the target control's Margin
' property changes.
Class DockPanelMarginTask
Inherits Task
Private dragBinding, endDragBinding As InputBinding
Private initialMargin As Thickness
' The DockPanelMarginTask constructor establishes mappings
' between user inputs and commands.
Public Sub New()
Dim beginDrag As New ToolCommand("BeginDrag")
Dim drag As New ToolCommand("Drag")
Dim endDrag As New ToolCommand("EndDrag")
Dim resetMargins As New ToolCommand("ResetMargins")
Me.InputBindings.Add(New InputBinding( _
beginDrag, _
New ToolGesture(ToolAction.DragIntent, MouseButton.Left)))
Me.InputBindings.Add( _
New InputBinding( _
resetMargins, _
New ToolGesture(ToolAction.DoubleClick, MouseButton.Left)))
Me.dragBinding = New InputBinding( _
drag, _
New ToolGesture(ToolAction.Move))
Me.endDragBinding = New InputBinding( _
endDrag, _
New ToolGesture(ToolAction.DragComplete))
Me.ToolCommandBindings.Add(New ToolCommandBinding(beginDrag, AddressOf OnBeginDrag))
Me.ToolCommandBindings.Add(New ToolCommandBinding(drag, AddressOf OnDrag))
Me.ToolCommandBindings.Add(New ToolCommandBinding(endDrag, AddressOf OnEndDrag))
Me.ToolCommandBindings.Add(New ToolCommandBinding(resetMargins, AddressOf OnResetMargins))
End Sub
Private Sub OnBeginDrag(ByVal sender As Object, ByVal args As ExecutedToolEventArgs)
Dim data As GestureData = GestureData.FromEventArgs(args)
Me.BeginFocus(data)
Me.InputBindings.Add(dragBinding)
Me.InputBindings.Add(endDragBinding)
Me.initialMargin = CType(data.ImpliedSource.Properties("Margin").ComputedValue, Thickness)
End Sub
Private Sub OnDrag(ByVal sender As Object, ByVal args As ExecutedToolEventArgs)
Dim data As MouseGestureData = MouseGestureData.FromEventArgs(args)
Dim offX As Double = data.PositionDelta.X
Dim offY As Double = data.PositionDelta.Y
Dim newMargin As Thickness = initialMargin
newMargin.Bottom += offY
newMargin.Top += offY
newMargin.Left += offX
newMargin.Right += offX
data.ImpliedSource.Properties("Margin").SetValue(newMargin)
End Sub
Private Sub OnEndDrag(ByVal sender As Object, ByVal args As ExecutedToolEventArgs)
Description = "Adjust margin"
Me.Complete()
End Sub
Protected Overrides Sub OnCompleted(ByVal e As EventArgs)
Me.Cleanup()
MyBase.OnCompleted(e)
End Sub
Protected Overrides Sub OnReverted(ByVal e As EventArgs)
Me.Cleanup()
MyBase.OnReverted(e)
End Sub
Private Sub Cleanup()
Me.InputBindings.Remove(dragBinding)
Me.InputBindings.Remove(endDragBinding)
End Sub
Private Sub OnResetMargins(ByVal sender As Object, ByVal args As ExecutedToolEventArgs)
Dim data As GestureData = GestureData.FromEventArgs(args)
data.ImpliedSource.Properties("Margin").ClearValue()
End Sub
End Class
using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Input;
using Microsoft.Windows.Design.Interaction;
namespace DemoControlLibrary.VisualStudio.Design
{
// A DockPanelMarginTask is attached to to the adorner
// offered by the DockPanelAdornerProvider class. When
// you drag the adorner, the target control's Margin
// property changes.
class DockPanelMarginTask : Task
{
InputBinding dragBinding, endDragBinding;
Thickness initialMargin;
// The DockPanelMarginTask constructor establishes mappings
// between user inputs and commands.
public DockPanelMarginTask()
{
ToolCommand beginDrag = new ToolCommand("BeginDrag");
ToolCommand drag = new ToolCommand("Drag");
ToolCommand endDrag = new ToolCommand("EndDrag");
ToolCommand resetMargins = new ToolCommand("ResetMargins");
this.InputBindings.Add(
new InputBinding(
beginDrag,
new ToolGesture(ToolAction.DragIntent, MouseButton.Left)));
this.InputBindings.Add(
new InputBinding(
resetMargins,
new ToolGesture(ToolAction.DoubleClick, MouseButton.Left)));
this.dragBinding = new InputBinding(
drag,
new ToolGesture(ToolAction.Move));
this.endDragBinding = new InputBinding(
endDrag,
new ToolGesture(ToolAction.DragComplete));
this.ToolCommandBindings.Add(
new ToolCommandBinding(beginDrag, OnBeginDrag));
this.ToolCommandBindings.Add(
new ToolCommandBinding(drag, OnDrag));
this.ToolCommandBindings.Add(
new ToolCommandBinding(endDrag, OnEndDrag));
this.ToolCommandBindings.Add(
new ToolCommandBinding(resetMargins, OnResetMargins));
}
private void OnBeginDrag(object sender, ExecutedToolEventArgs args)
{
GestureData data = GestureData.FromEventArgs(args);
this.BeginFocus(data);
this.InputBindings.Add(dragBinding);
this.InputBindings.Add(endDragBinding);
this.initialMargin = (Thickness)data.ImpliedSource.Properties[
"Margin"].ComputedValue;
}
private void OnDrag(object sender, ExecutedToolEventArgs args)
{
MouseGestureData data = MouseGestureData.FromEventArgs(args);
double offX = data.PositionDelta.X;
double offY = data.PositionDelta.Y;
Thickness newMargin = initialMargin;
newMargin.Bottom += offY;
newMargin.Top += offY;
newMargin.Left += offX;
newMargin.Right += offX;
data.ImpliedSource.Properties["Margin"].SetValue(newMargin);
}
private void OnEndDrag(object sender, ExecutedToolEventArgs args)
{
Description = "Adjust margin";
this.Complete();
}
protected override void OnCompleted(EventArgs e)
{
this.Cleanup();
base.OnCompleted(e);
}
protected override void OnReverted(EventArgs e)
{
this.Cleanup();
base.OnReverted(e);
}
private void Cleanup()
{
this.InputBindings.Remove(dragBinding);
this.InputBindings.Remove(endDragBinding);
}
private void OnResetMargins(object sender, ExecutedToolEventArgs args)
{
GestureData data = GestureData.FromEventArgs(args);
data.ImpliedSource.Properties["Margin"].ClearValue();
}
}
}
Zabezpečení podprocesu
Všechny veřejné členy static (Shared v jazyce Visual Basic) tohoto typu jsou zabezpečeny pro používání podprocesů. Zabezpečení sdílených členů pro používání podprocesů není zaručeno.
Viz také
Odkaz
Microsoft.Windows.Design.Interaction – obor názvů