Aracılığıyla paylaş


InputBinding Sınıf

Tanım

ile komutu arasındaki InputGesture bağlamayı temsil eder. Komutu bir olasıdır RoutedCommand.

public ref class InputBinding : System::Windows::DependencyObject, System::Windows::Input::ICommandSource
public ref class InputBinding : System::Windows::Freezable, System::Windows::Input::ICommandSource
public class InputBinding : System.Windows.DependencyObject, System.Windows.Input.ICommandSource
public class InputBinding : System.Windows.Freezable, System.Windows.Input.ICommandSource
type InputBinding = class
    inherit DependencyObject
    interface ICommandSource
type InputBinding = class
    inherit Freezable
    interface ICommandSource
Public Class InputBinding
Inherits DependencyObject
Implements ICommandSource
Public Class InputBinding
Inherits Freezable
Implements ICommandSource
Devralma
Devralma
Türetilmiş
Uygulamalar

Örnekler

Aşağıdaki örnekte komutuna bağlamak için a'nın KeyBindingKeyGesture nasıl kullanılacağı gösterilmektedir Open . Anahtar hareketi gerçekleştirildiğinde Aç komutu çağrılır.

<Window.InputBindings>
  <KeyBinding Key="B"
              Modifiers="Control" 
              Command="ApplicationCommands.Open" />
</Window.InputBindings>

Aşağıdaki örneklerde nesnelere özel komut InputBinding bağlama gösterilmektedir. Bu örnekler, kullanıcının aşağıdaki eylemlerden birini gerçekleştirerek arka plan rengini değiştirmesine olanak tanıyan bir uygulama oluşturur:

  • Bir düğmeye tıklama.

  • CTRL+C tuşlarına basın.

  • Bir StackPanel öğesine sağ tıklama (dışında).ListBox

İlk örnek adlı SimpleDelegateCommandbir sınıf oluşturur. Bu sınıf, komutu oluşturan nesnenin komut yürütürken gerçekleşen eylemi tanımlayabilmesi için bir temsilci kabul eder. SimpleDelegateCommand ayrıca, hangi tuş ve fare girişinin komutu çağıracağını belirten özellikleri tanımlar. GestureKey ve GestureModifier klavye girişini belirtin; MouseGesture fare girişini belirtir.

 // Create a class that implements ICommand and accepts a delegate.
public class SimpleDelegateCommand : ICommand
{
    // Specify the keys and mouse actions that invoke the command. 
    public Key GestureKey { get; set; }
    public ModifierKeys GestureModifier { get; set; }
    public MouseAction MouseGesture { get; set; }

    Action<object> _executeDelegate;

    public SimpleDelegateCommand(Action<object> executeDelegate)
    {
        _executeDelegate = executeDelegate;
    }

    public void Execute(object parameter)
    {
        _executeDelegate(parameter);
    }

    public bool CanExecute(object parameter) { return true; }
    public event EventHandler CanExecuteChanged;
}
' Create a class that implements ICommand and accepts a delegate. 
Public Class SimpleDelegateCommand
    Implements ICommand

    ' Specify the keys and mouse actions that invoke the command. 
    Private _GestureKey As Key
    Private _GestureModifier As ModifierKeys
    Private _MouseGesture As MouseAction

    Public Property GestureKey() As Key
        Get
            Return _GestureKey
        End Get
        Set(ByVal value As Key)
            _GestureKey = value
        End Set
    End Property

    Public Property GestureModifier() As ModifierKeys
        Get
            Return _GestureModifier
        End Get
        Set(ByVal value As ModifierKeys)
            _GestureModifier = value
        End Set
    End Property

    Public Property MouseGesture() As MouseAction
        Get
            Return _MouseGesture
        End Get
        Set(ByVal value As MouseAction)
            _MouseGesture = value
        End Set
    End Property

    Private _executeDelegate As Action(Of Object)

    Public Sub New(ByVal executeDelegate As Action(Of Object))
        _executeDelegate = executeDelegate
    End Sub

    Public Sub Execute(ByVal parameter As Object) _
        Implements ICommand.Execute

        _executeDelegate(parameter)
    End Sub

    Public Function CanExecute(ByVal parameter As Object) As Boolean _
        Implements ICommand.CanExecute

        Return True
    End Function

    Public Event CanExecuteChanged As EventHandler _
        Implements ICommand.CanExecuteChanged
End Class

Aşağıdaki örnek, bir SimpleDelegateCommandolan öğesini oluşturur ve başlatırColorChangeCommand. Örnek ayrıca komut çağrıldığında yürütülen yöntemi tanımlar ve , GestureModifierve MouseGesture özelliklerini ayarlarGestureKey. Bir uygulama, program başladığında yöntemini çağıracak InitializeCommand , örneğin bir Windowoluşturucusunda.

public SimpleDelegateCommand ChangeColorCommand
{
    get { return changeColorCommand; }
}

private SimpleDelegateCommand changeColorCommand;

private void InitializeCommand()
{
    originalColor = this.Background;

    changeColorCommand = new SimpleDelegateCommand(x => this.ChangeColor(x));

    DataContext = this;
    changeColorCommand.GestureKey = Key.C;
    changeColorCommand.GestureModifier = ModifierKeys.Control;
    ChangeColorCommand.MouseGesture = MouseAction.RightClick;
}

private Brush originalColor, alternateColor;

// Switch the Background color between
// the original and selected color.
private void ChangeColor(object colorString)
{
    if (colorString == null)
    {
        return;
    }

    Color newColor = 
        (Color)ColorConverter.ConvertFromString((String)colorString);
    
    alternateColor = new SolidColorBrush(newColor);

    if (this.Background == originalColor)
    {
        this.Background = alternateColor;
    }
    else
    {
        this.Background = originalColor;
    }
}
Public ReadOnly Property ChangeColorCommand() As SimpleDelegateCommand
    Get
        Return _changeColorCommand
    End Get
End Property

Private _changeColorCommand As SimpleDelegateCommand
Private originalColor As Brush, alternateColor As Brush

Private Sub InitializeCommand()
    originalColor = Me.Background

    _changeColorCommand = New SimpleDelegateCommand(Function(x) Me.ChangeColor(x))

    DataContext = Me
    _changeColorCommand.GestureKey = Key.C
    _changeColorCommand.GestureModifier = ModifierKeys.Control
    _changeColorCommand.MouseGesture = MouseAction.RightClick
End Sub

' Switch the Background color between 
' the original and selected color. 
Private Function ChangeColor(ByVal colorString As Object) As Integer

    If colorString Is Nothing Then
        Return 0
    End If

    Dim newColor As Color = DirectCast(ColorConverter.ConvertFromString(DirectCast(colorString, [String])), Color)

    alternateColor = New SolidColorBrush(newColor)

    If Brush.Equals(Me.Background, originalColor) Then
        Me.Background = alternateColor
    Else
        Me.Background = originalColor
    End If

    Return 0
End Function

Son olarak, aşağıdaki örnek kullanıcı arabirimini oluşturur. Örnek, ve içeren bir öğesine ve ListBoxeklerKeyBinding.StackPanelButtonMouseBinding Kullanıcı içinde bir öğe seçtiğinde ListBox, arka planın rengini seçili renkle değiştirebilir. Her durumda, CommandParameter özelliği içinde ListBoxseçili öğeye bağlıdır ve Command özelliği ile ilişkilidir ColorChangeCommand. KeyBinding.Key, KeyBinding.Modifiersve MouseBinding.MouseAction özellikleri, sınıfındaki ilgili özelliklere SimpleDelegateCommand bağlıdır.

<StackPanel Background="Transparent">
  <StackPanel.InputBindings>
    
    <KeyBinding Command="{Binding ChangeColorCommand}"
                CommandParameter="{Binding ElementName=colorPicker, Path=SelectedItem}"
                Key="{Binding ChangeColorCommand.GestureKey}"
                Modifiers="{Binding ChangeColorCommand.GestureModifier}"/>

    <MouseBinding Command="{Binding ChangeColorCommand}"
                  CommandParameter="{Binding ElementName=colorPicker, Path=SelectedItem}"
                  MouseAction="{Binding ChangeColorCommand.MouseGesture}"/>
  
  </StackPanel.InputBindings>
  
  <Button Content="Change Color" 
          Command="{Binding ChangeColorCommand}" 
          CommandParameter="{Binding ElementName=colorPicker, Path=SelectedItem}">
  </Button>

  <ListBox Name="colorPicker"
           Background="Transparent"
           xmlns:sys="clr-namespace:System;assembly=mscorlib">
    <sys:String>Red</sys:String>
    <sys:String>Green</sys:String>
    <sys:String>Blue</sys:String>
    <sys:String>Yellow</sys:String>
    <sys:String>Orange</sys:String>
    <sys:String>Purple</sys:String>
  </ListBox>
</StackPanel>

Açıklamalar

Kullanıcı girişinin bir komutu oluşturarak InputBindingçağıracağını belirtebilirsiniz. Kullanıcı belirtilen girişi gerçekleştirdiğinde özelliğine ICommandCommand ayarlanmış olan yürütülür.

öğesinin InputBinding , CommandParameterve CommandTarget özelliklerinde bir bağlama oluşturarak nesne üzerinde Commandtanımlanan bir komutu çağıracağını belirtebilirsiniz. Bu, özel bir komut tanımlamanızı ve bunu kullanıcı girişiyle ilişkilendirmenizi sağlar. Daha fazla bilgi için Örnekler bölümündeki ikinci örne bakın.

ile InputBinding kaydederek RegisterClassInputBindingCommandManagerbelirli bir nesnede veya sınıf düzeyinde tanımlanabilir.

Sınıfın InputBinding kendisi XAML kullanımını desteklemez çünkü genel parametresiz oluşturucuyu kullanıma sunmaz (parametresiz bir oluşturucu vardır, ancak korunur). Ancak, türetilmiş sınıflar bir ortak oluşturucuyu kullanıma açabilir ve bu nedenle XAML kullanımıyla devralınan InputBinding türetilmiş sınıfta özellikler ayarlayabilir. XAML'de örneği oluşturulabilen ve XAML'de özellikleri ayarlayabilen mevcut InputBindingtüretilmiş iki sınıf ve MouseBindingşeklindedirKeyBinding. WPF programlamasında XAML'de ayarlanan ve bir veya daha fazla InputBinding nesneyi değer olarak alan tipik özellik özelliğidir UIElement.InputBindings .

XAML Nesne Öğesi Kullanımı

< inputBindingDerivedClass.../>

XAML Değerleri

inputBindingDerivedClass
veya MouseBindinggibi KeyBinding nesne öğesi söz dizimini InputBinding destekleyen türetilmiş sınıfı. Bkz. Açıklamalar.

Oluşturucular

InputBinding()

'den InputBindingtüretilen sınıflar için temel başlatma sağlar.

InputBinding(ICommand, InputGesture)

Belirtilen komut ve giriş hareketiyle sınıfının yeni bir örneğini InputBinding başlatır.

Alanlar

CommandParameterProperty

CommandParameter Bağımlılık özelliğini tanımlar.

CommandProperty

Command Bağımlılık özelliğini tanımlar.

CommandTargetProperty

CommandTarget Bağımlılık özelliğini tanımlar.

Özellikler

CanFreeze

Nesnenin değiştirilemez hale getirilip getirilemeyeceğini belirten bir değer alır.

(Devralındığı yer: Freezable)
Command

Bu giriş bağlamasıyla ilişkili olan öğesini ICommand alır veya ayarlar.

CommandParameter

Belirli bir komut için komuta özgü verileri alır veya ayarlar.

CommandTarget

Komutun hedef öğesini alır veya ayarlar.

DependencyObjectType

DependencyObjectType Bu örneğin CLR türünü sarmalayan öğesini alır.

(Devralındığı yer: DependencyObject)
Dispatcher

Dispatcher Bunun DispatcherObject ilişkili olduğunu alır.

(Devralındığı yer: DispatcherObject)
Gesture

Bu giriş bağlamasıyla ilişkili olan öğesini InputGesture alır veya ayarlar.

IsFrozen

Nesnenin şu anda değiştirilebilir olup olmadığını gösteren bir değer alır.

(Devralındığı yer: Freezable)
IsSealed

Bu örneğin şu anda korumalı olup olmadığını belirten bir değer alır (salt okunur).

(Devralındığı yer: DependencyObject)

Yöntemler

CheckAccess()

Çağıran iş parçacığının bu DispatcherObjectöğesine erişimi olup olmadığını belirler.

(Devralındığı yer: DispatcherObject)
ClearValue(DependencyProperty)

Bir özelliğin yerel değerini temizler. Temizlenecek özellik bir DependencyProperty tanımlayıcı tarafından belirtilir.

(Devralındığı yer: DependencyObject)
ClearValue(DependencyPropertyKey)

Salt okunur özelliğin yerel değerini temizler. Temizlenecek özellik tarafından DependencyPropertyKeybelirtilir.

(Devralındığı yer: DependencyObject)
Clone()

nesnesinin değerlerinin Freezablederin kopyalarını oluşturan değiştirilebilir bir kopyasını oluşturur. Nesnenin bağımlılık özelliklerini kopyalarken, bu yöntem ifadeleri kopyalar (artık çözümlenmeyebilir) ancak animasyonları veya geçerli değerlerini kopyalamıyor.

(Devralındığı yer: Freezable)
CloneCore(Freezable)

Belirtilen nesnenin özelliklerinin temel (animasyonsuz) değerlerini kopyalar.

CloneCurrentValue()

Geçerli değerlerini kullanarak öğesinin Freezable değiştirilebilir bir kopyasını (derin kopya) oluşturur.

(Devralındığı yer: Freezable)
CloneCurrentValueCore(Freezable)

Belirtilen nesnenin özelliklerinin geçerli değerlerini kopyalar.

CoerceValue(DependencyProperty)

Belirtilen bağımlılık özelliğinin değerini zorlama. Bu, çağrısında DependencyObjectvar olan bağımlılık özelliği için özellik meta verilerinde belirtilen herhangi bir CoerceValueCallback işlevi çağırarak gerçekleştirilir.

(Devralındığı yer: DependencyObject)
CreateInstance()

Freezable sınıfının yeni bir örneğini başlatır.

(Devralındığı yer: Freezable)
CreateInstanceCore()

bir örneğini InputBindingoluşturur.

Equals(Object)

Sağlanan DependencyObject öğesinin geçerli DependencyObjectile eşdeğer olup olmadığını belirler.

(Devralındığı yer: DependencyObject)
Freeze()

Geçerli nesneyi değiştirilemez hale getirir ve özelliğini olarak trueayarlarIsFrozen.

(Devralındığı yer: Freezable)
FreezeCore(Boolean)

Freezable Nesneyi değiştirilemez hale getirir veya değiştirilemez hale getirilip getirilemeyeceğini test eder.

(Devralındığı yer: Freezable)
GetAsFrozen()

temel (animasyonsuz) özellik değerlerini kullanarak öğesinin dondurulan Freezablebir kopyasını oluşturur. Kopya donduruldu olduğundan, dondurulan tüm alt nesneler başvuruyla kopyalanır.

(Devralındığı yer: Freezable)
GetAsFrozenCore(Freezable)

Temel (animasyonlu olmayan) özellik değerlerini kullanarak örneği belirtilen Freezable öğesinin dondurulan bir kopyası yapar.

GetCurrentValueAsFrozen()

Geçerli özellik değerlerini kullanarak öğesinin dondurulan Freezable bir kopyasını oluşturur. Kopya donduruldu olduğundan, dondurulan tüm alt nesneler başvuruyla kopyalanır.

(Devralındığı yer: Freezable)
GetCurrentValueAsFrozenCore(Freezable)

Geçerli örneği, belirtilen Freezableöğesinin dondurulan bir kopyası yapar. Nesnenin animasyonlu bağımlılık özellikleri varsa, geçerli animasyonlu değerleri kopyalanır.

GetHashCode()

Bu DependencyObjectiçin bir karma kodu alır.

(Devralındığı yer: DependencyObject)
GetLocalValueEnumerator()

Hangi bağımlılık özelliklerinin bu DependencyObjectüzerinde yerel olarak ayarlı değerlere sahip olduğunu belirlemek için özelleştirilmiş bir numaralandırıcı oluşturur.

(Devralındığı yer: DependencyObject)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
GetValue(DependencyProperty)

Bir öğesinin bu örneğindeki bağımlılık özelliğinin DependencyObjectgeçerli geçerli değerini döndürür.

(Devralındığı yer: DependencyObject)
InvalidateProperty(DependencyProperty)

Belirtilen bağımlılık özelliği için geçerli değeri yeniden değerlendirir.

(Devralındığı yer: DependencyObject)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
OnChanged()

Geçerli Freezable nesne değiştirildiğinde çağrılır.

(Devralındığı yer: Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject)

Yeni ayarlanmış bir DependencyObjectType veri üyesi için uygun bağlam işaretçilerinin oluşturulmasını sağlar.

(Devralındığı yer: Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty)

Bu üye Windows Presentation Foundation (WPF) altyapısını destekler ve doğrudan kodunuzdan kullanılması amaçlanmamıştır.

(Devralındığı yer: Freezable)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Üzerindeki DependencyObject herhangi bir bağımlılık özelliğinin etkin değeri her güncelleştirildiğinde çağrılır. Değiştirilen belirli bağımlılık özelliği olay verilerinde bildirilir.

(Devralındığı yer: DependencyObject)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

türündeki DependencyObjectFreezabledeğişen bağımlılık özelliğine yanıt olarak herhangi Changed bir işleyici çağırmak için uygulamasını OnPropertyChanged(DependencyPropertyChangedEventArgs) geçersiz kılar.

(Devralındığı yer: Freezable)
ReadLocalValue(DependencyProperty)

Varsa, bağımlılık özelliğinin yerel değerini döndürür.

(Devralındığı yer: DependencyObject)
ReadPreamble()

Freezable geçerli bir iş parçacığından erişildiğinden emin olunmasını sağlar. öğesinin Freezable devralıcıları, bağımlılık özellikleri olmayan veri üyelerini okuyan herhangi bir API'nin başında bu yöntemi çağırmalıdır.

(Devralındığı yer: Freezable)
SetCurrentValue(DependencyProperty, Object)

Bir bağımlılık özelliğinin değerini, değer kaynağını değiştirmeden ayarlar.

(Devralındığı yer: DependencyObject)
SetValue(DependencyProperty, Object)

Bağımlılık özelliği tanımlayıcısı tarafından belirtilen bir bağımlılık özelliğinin yerel değerini ayarlar.

(Devralındığı yer: DependencyObject)
SetValue(DependencyPropertyKey, Object)

Bağımlılık özelliğinin tanımlayıcısı tarafından belirtilen salt okunur bağımlılık özelliğinin DependencyPropertyKey yerel değerini ayarlar.

(Devralındığı yer: DependencyObject)
ShouldSerializeProperty(DependencyProperty)

Serileştirme işlemlerinin sağlanan bağımlılık özelliği için değeri serileştirmesi gerekip gerekmediğini belirten bir değer döndürür.

(Devralındığı yer: DependencyObject)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)
VerifyAccess()

Çağıran iş parçacığının bu DispatcherObjecterişimine sahip olmasını zorlar.

(Devralındığı yer: DispatcherObject)
WritePostscript()

Changed için Freezable olayını oluşturur ve yöntemini çağırırOnChanged(). öğesinden Freezable türetilen sınıflar, bağımlılık özellikleri olarak depolanmayan sınıf üyelerini değiştiren herhangi bir API'nin sonunda bu yöntemi çağırmalıdır.

(Devralındığı yer: Freezable)
WritePreamble()

öğesinin Freezable dondurulmadığını ve geçerli bir iş parçacığı bağlamından erişildiğini doğrular. Freezable inheritor'lar bağımlılık özellikleri olmayan veri üyelerine yazan herhangi bir API'nin başında bu yöntemi çağırmalıdır.

(Devralındığı yer: Freezable)

Ekinlikler

Changed

içerdiği veya nesnesi değiştirildiğinde Freezable gerçekleşir.

(Devralındığı yer: Freezable)

Şunlara uygulanır

Ayrıca bkz.