Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Aşağıdaki örnekte, Windows Presentation Foundation'da (WPF) komutun nasıl kullanılacağı gösterilmektedir. Örnekte bir RoutedCommandButtonile ilişkilendirme, oluşturma CommandBindingve öğesini uygulayan olay işleyicilerinin nasıl oluşturulacağı gösterilmektedir RoutedCommand. Komut oluşturma hakkında daha fazla bilgi için bkz. Komuta Genel Bakış.
Örnek
Kodun ilk bölümü, bir Button ve StackPanelöğesinden oluşan kullanıcı arabirimini (UI) oluşturur ve komut işleyicilerini ile CommandBindingilişkilendiren bir RoutedCommand oluşturur.
Command özelliği Button komutuyla Close ilişkilendirilir.
CommandBinding, kök CommandBindingCollectiondizinine Window eklenir. Executed ve CanExecute olay işleyicileri bu bağlamaya eklenir ve komutuyla ilişkilendirilirClose.
CommandBinding komut mantığı olmadan, yalnızca komutu çağırmak için bir mekanizma. Button öğesine tıklandığında, PreviewExecutedRoutedEvent komutu komut hedefinde ve ardından öğesinin ExecutedRoutedEventardından oluşturulur. Bu olaylar, belirli bir CommandBinding komutu bulmak için öğe ağacını gezer. Öğe ağacından tünel ve kabarcık geçtiği için RoutedEvent , öğesinin yerleştirildiği yere CommandBinding dikkat edilmesi gerektiğini belirtmek gerekir. CommandBinding komutu, komut hedefinin bir eşdüzeyindeyse veya yolunda RoutedEventCommandBinding olmayan başka bir düğümdeyse, öğesine erişilmeyecektir.
<Window x:Class="WCSamples.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="CloseCommand"
Name="RootWindow"
>
<Window.CommandBindings>
<CommandBinding Command="ApplicationCommands.Close"
Executed="CloseCommandHandler"
CanExecute="CanExecuteHandler"
/>
</Window.CommandBindings>
<StackPanel Name="MainStackPanel">
<Button Command="ApplicationCommands.Close"
Content="Close File" />
</StackPanel>
</Window>
// Create ui elements.
StackPanel CloseCmdStackPanel = new StackPanel();
Button CloseCmdButton = new Button();
CloseCmdStackPanel.Children.Add(CloseCmdButton);
// Set Button's properties.
CloseCmdButton.Content = "Close File";
CloseCmdButton.Command = ApplicationCommands.Close;
// Create the CommandBinding.
CommandBinding CloseCommandBinding = new CommandBinding(
ApplicationCommands.Close, CloseCommandHandler, CanExecuteHandler);
// Add the CommandBinding to the root Window.
RootWindow.CommandBindings.Add(CloseCommandBinding);
' Create ui elements.
Dim CloseCmdStackPanel As New StackPanel()
Dim CloseCmdButton As New Button()
CloseCmdStackPanel.Children.Add(CloseCmdButton)
' Set Button's properties.
CloseCmdButton.Content = "Close File"
CloseCmdButton.Command = ApplicationCommands.Close
' Create the CommandBinding.
Dim CloseCommandBinding As New CommandBinding(ApplicationCommands.Close, AddressOf CloseCommandHandler, AddressOf CanExecuteHandler)
' Add the CommandBinding to the root Window.
RootWindow.CommandBindings.Add(CloseCommandBinding)
Kodun sonraki bölümünde ve Executed olay işleyicileri uygulanırCanExecute.
İşleyici, Executed açık dosyayı kapatmak için bir yöntem çağırır. İşleyici, CanExecute bir dosyanın açık olup olmadığını belirlemek için bir yöntem çağırır. Bir dosya açıksa olarak CanExecute ayarlanır true; aksi takdirde olarak ayarlanır false.
// Executed event handler.
private void CloseCommandHandler(object sender, ExecutedRoutedEventArgs e)
{
// Calls a method to close the file and release resources.
CloseFile();
}
// CanExecute event handler.
private void CanExecuteHandler(object sender, CanExecuteRoutedEventArgs e)
{
// Call a method to determine if there is a file open.
// If there is a file open, then set CanExecute to true.
if (IsFileOpened())
{
e.CanExecute = true;
}
// if there is not a file open, then set CanExecute to false.
else
{
e.CanExecute = false;
}
}
' Executed event handler.
Private Sub CloseCommandHandler(ByVal sender As Object, ByVal e As ExecutedRoutedEventArgs)
' Calls a method to close the file and release resources.
CloseFile()
End Sub
' CanExecute event handler.
Private Sub CanExecuteHandler(ByVal sender As Object, ByVal e As CanExecuteRoutedEventArgs)
' Call a method to determine if there is a file open.
' If there is a file open, then set CanExecute to true.
If IsFileOpened() Then
e.CanExecute = True
' if there is not a file open, then set CanExecute to false.
Else
e.CanExecute = False
End If
End Sub
Ayrıca bakınız
.NET Desktop feedback