diff options
-rw-r--r--[-rwxr-xr-x] | Xamarin.PropertyEditing.Windows/PropertyPresenter.cs | 19 | ||||
-rw-r--r-- | Xamarin.PropertyEditing.Windows/Themes/Resources.xaml | 5 |
2 files changed, 20 insertions, 4 deletions
diff --git a/Xamarin.PropertyEditing.Windows/PropertyPresenter.cs b/Xamarin.PropertyEditing.Windows/PropertyPresenter.cs index 4cf1813..72a009b 100755..100644 --- a/Xamarin.PropertyEditing.Windows/PropertyPresenter.cs +++ b/Xamarin.PropertyEditing.Windows/PropertyPresenter.cs @@ -6,6 +6,7 @@ using System.Windows.Automation; using System.Windows.Automation.Peers; using System.Windows.Controls; using System.Windows.Controls.Primitives; +using System.Windows.Input; using System.Windows.Media; using Xamarin.PropertyEditing.ViewModels; @@ -112,6 +113,12 @@ namespace Xamarin.PropertyEditing.Windows this.variationRow = (RowDefinition) GetTemplateChild ("variationRow"); this.variationsList = GetTemplateChild ("variationsList") as ItemsControl; + + this.propertyButton = (PropertyButton) GetTemplateChild ("propertyButton"); + + this.propertyContainer = (Border) GetTemplateChild ("propertyContainer"); + // Since the template never changes, the handler only gets added once and there's no need to unsubscribe + this.propertyContainer.AddHandler (Border.PreviewKeyDownEvent, new KeyEventHandler (PropertyContainer_PreviewKeyDown)); } protected override AutomationPeer OnCreateAutomationPeer () @@ -155,10 +162,22 @@ namespace Xamarin.PropertyEditing.Windows } } + private void PropertyContainer_PreviewKeyDown (object sender, KeyEventArgs e) + { + var isModifierControl = Keyboard.Modifiers == ModifierKeys.Control; + + if (e.Key == Key.Space && isModifierControl) { + propertyButton.ShowMenu (); + e.Handled = true; + } + } + private PropertyViewModel pvm; private ButtonBase addButton, removeButton; private RowDefinition variationRow; private ItemsControl variationsList; + private Border propertyContainer; + private PropertyButton propertyButton; private void OnLoaded (object sender, RoutedEventArgs e) { diff --git a/Xamarin.PropertyEditing.Windows/Themes/Resources.xaml b/Xamarin.PropertyEditing.Windows/Themes/Resources.xaml index 2b0938e..cafc4c0 100644 --- a/Xamarin.PropertyEditing.Windows/Themes/Resources.xaml +++ b/Xamarin.PropertyEditing.Windows/Themes/Resources.xaml @@ -1708,10 +1708,7 @@ <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="local:PropertyPresenter"> - <Border Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"> - <Border.InputBindings> - <KeyBinding Gesture="CTRL+Space" Command="{StaticResource InvokePropertyButtonCommand}" CommandParameter="{Binding ElementName=propertyButton,Mode=OneTime}" /> - </Border.InputBindings> + <Border x:Name="propertyContainer" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Name="delveColumn" Width="Auto" /> |