Я не уверен в том, под чем Вы подразумеваете "глобальный" здесь, но здесь это идет (я предполагаю, что Вы подразумеваете, что команда на прикладном уровне, например, Сохраняет Весь , который может быть инициирован отовсюду Ctrl + Сдвиг + S .)
Вы находите глобальное UIElement
по Вашему выбору, например, высокоуровневое окно, которое является родителем всех средств управления, где Вам нужна эта привязка. Из-за "пузырения" событий WPF, события в дочерних элементах будут пузыриться полностью до корня дерева управления.
Теперь, сначала Вам нужно
InputBinding
как это SaveAll
) через CommandBinding
. Для Windows Ключ, Вы используете право Ключ перечисленный участник, Key.LWin
или Key.RWin
public WindowMain()
{
InitializeComponent();
// Bind Key
InputBinding ib = new InputBinding(
MyAppCommands.SaveAll,
new KeyGesture(Key.S, ModifierKeys.Shift | ModifierKeys.Control));
this.InputBindings.Add(ib);
// Bind handler
CommandBinding cb = new CommandBinding( MyAppCommands.SaveAll);
cb.Executed += new ExecutedRoutedEventHandler( HandlerThatSavesEverthing );
this.CommandBindings.Add (cb );
}
private void HandlerThatSavesEverthing (object obSender, ExecutedRoutedEventArgs e)
{
// Do the Save All thing here.
}
Ключевое слово "не автоматически не включается". Вы можете нажимать и тянуть теги, вам просто нужно указать это в своих командах push / pull. Попробуйте git push --tags
.
(На самом деле в наши дни теги извлекаются автоматически, но push-уведомления должны быть явными)
Я не знаю, но в наши дни теги фактически выбираются, и это уже давно используется по умолчанию.
Формулировка в частях Вы цитируете меня, когда я смотрю на это с сегодняшней терминологией git, мне кажется непонятным, поэтому я осмелюсь заявить, что утверждение Линуса устарело.