Связывание клавиши помощи F1 с кнопкой на Ленте
Вопрос:Я хотел бы, чтобы показывался мой chm-файл при нажатии клавиши F1 когда в подсказке кнопки на ленте появляется сообщение "Нажмите F1 для получения дополнительной справки.". Можно посмотреть пример как это сделать?
Ответ:
Свойства "HelpSource" и "HelpTopic" класса RibbonItem должны быть установлены для того, чтобы AutoCAD показал ваш chm-файл. "HelpSource" - это Uri к chm-файлу, а "HelpTopic" – это идентификатор темы (topic id) страницы в chm-файле.
Ниже кусок кода. Вы должны изменить строки "HelpSource" и "HelpTopic" для указания chm-файла у вас в системе и идентификатора темы в нём. Так же не забудьте подключить "AdWindows.dll" к своему проекту.
- // Из AdWindows.dll
- using Autodesk.Windows;
- public class MyCommands
- {
- [CommandMethod("CRB")]
- public void createRibbonButton()
- {
- Autodesk.Windows.RibbonControl ribCntrl =
- Autodesk.AutoCAD.Ribbon.RibbonServices.RibbonPaletteSet.RibbonControl;
- // Добавляем вкладку
- RibbonTab ribTab = new RibbonTab();
- ribTab.Title = "My custom tab";
- ribTab.Id = "MY_TAB_ID";
- ribCntrl.Tabs.Add(ribTab);
- // Создаем источник для панели
- Autodesk.Windows.RibbonPanelSource ribSourcePanel
- = new RibbonPanelSource();
- ribSourcePanel.Title = "Controls";
- // Теперь создаем панель
- RibbonPanel ribPanel = new RibbonPanel();
- ribPanel.Source = ribSourcePanel;
- ribTab.Panels.Add(ribPanel);
- Autodesk.Windows.RibbonToolTip ribToolTip
- = new RibbonToolTip();
- ribToolTip.Command = "Моя_команда";
- ribToolTip.Title = "Мой Заголовок ";
- ribToolTip.Content = "Мой Контент ";
- ribToolTip.ExpandedContent = "Мой Расширенный Контент !";
- // Без этого сообщение " Нажмите F1 для получения дополнительной справки."
- // does not appear in the tooltip
- ribToolTip.IsHelpEnabled = true;
- Autodesk.Windows.RibbonButton ribButton
- = new RibbonButton();
- ribButton.Text = "Полилиния";
- ribButton.ShowText = true;
- ribButton.CommandParameter = "\x1b\x1b_PLINE ";
- ribButton.CommandHandler = new AdskCommandHandler();
- ribButton.HelpSource
- = new System.Uri(
- @"C:\Temp\ToolTipDemo.chm",
- UriKind.RelativeOrAbsolute
- );
- ribButton.HelpTopic = "CreateLayer";
- ribButton.IsToolTipEnabled = true;
- ribButton.ToolTip = ribToolTip;
- ribSourcePanel.Items.Add(ribButton);
- ribTab.IsActive = true;
- }
- }
- public class AdskCommandHandler : System.Windows.Input.ICommand
- {
- public bool CanExecute(object parameter)
- {
- return true;
- }
- public event EventHandler CanExecuteChanged;
- public void Execute(object parameter)
- {
- RibbonButton ribBtn = parameter as RibbonButton;
- if (ribBtn != null)
- {
- Application.DocumentManager.MdiActiveDocument.SendStringToExecute
- (
- (String)ribBtn.CommandParameter, true, false, true
- );
- }
- }
- }
Источник: http://adndevblog.typepad.com/autocad/2012/09/associating-f1-help-with-ribbon-button.html
Обсуждение: http://adn-cis.org/forum/index.php?topic=1100
Опубликовано 22.11.2014