Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Привязать горячие сочитание 
:(
    Опции темы
DenWPF
Дата 11.7.2010, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



вот хочу когда нажимается ctr + s - начинала работать определенная  функция.

есть какой то класс для этого?? или надо постояное отлавливать??
PM MAIL   Вверх
SergeyLoginov
Дата 12.7.2010, 08:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 28.9.2009
Где: Иваново

Репутация: 4
Всего: 4



У команд в WPF для этих целей предусмотрены InputGestures. Почитай про команды и используй лучше их, а не обработчики событий (когда надо выполнить какое-то действие, например, по клику на кнопке или при выборе пункта в меню и т.п.).
PM MAIL   Вверх
DenWPF
Дата 12.7.2010, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



InputGestures - спасибо..
а вот команды пока не осилил=((( не понимаю синтаксиса создания.
PM MAIL   Вверх
SergeyLoginov
Дата 12.7.2010, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 28.9.2009
Где: Иваново

Репутация: 4
Всего: 4



Осиливай, читай, пробуй. Без команд, привязок и свойств зависимостей получается не WPF, а почти WinForms какой-то.

Это сообщение отредактировал(а) SergeyLoginov - 12.7.2010, 12:57
PM MAIL   Вверх
DenWPF
Дата 12.7.2010, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



с привязками уже более понятно, да и с командами тоже..но только готовыми, а вот свои создать не могу понять как
PM MAIL   Вверх
SKrivosein
Дата 14.7.2010, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Идущий в даль
**


Профиль
Группа: Участник
Сообщений: 271
Регистрация: 9.6.2007
Где: Praha - Прага

Репутация: нет
Всего: 8



Создай класс команд, для примера
 
Код

public class MyCommands
    {
        private static RoutedUICommand calcCommand;

        static MyCommands()
        {
            InputGestureCollection inputC = new InputGestureCollection();
            inputC.Add(new KeyGesture(Key.C, ModifierKeys.Alt, "Alt+C"));
            calcCommand = new RoutedUICommand("Калькулатор", "CalcCommand", typeof(MyCommands), inputC);
        }

        public static RoutedUICommand CalcCommand
        {
            get { return calcCommand; }
        }
    }


а в коде потом

Код

        private void CommandBindingInitialize()
        {
            CommandBinding calcBinding = new CommandBinding(MyCommands.CalcCommand);
            calcBinding.Executed += new ExecutedRoutedEventHandler(calcBinding_Executed);
            this.CommandBindings.Add(calcBinding);
        }
 
        void calcBinding_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            try
            {
                string system32 = Environment.GetFolderPath(Environment.SpecialFolder.System);
                Process.Start(system32 + "\\calc.exe");
            }
            catch (Exception ex)
            {
                string err = ex.Message;
                string source = ex.Source;
            }
        }


И всё, можно и иногда нужно обработать CanExecute, или понастроить чего то ещё . Привязать в XAML  кде надо.

Это сообщение отредактировал(а) SKrivosein - 14.7.2010, 21:13


--------------------
Оптимист - это плохо информированный человек.
user posted image

PM MAIL   Вверх
DenWPF
Дата 14.7.2010, 21:23 (ссылка)   | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



чот твой пример не пашет???
точно не чего не забыл??

PM MAIL   Вверх
SKrivosein
Дата 14.7.2010, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Идущий в даль
**


Профиль
Группа: Участник
Сообщений: 271
Регистрация: 9.6.2007
Где: Praha - Прага

Репутация: нет
Всего: 8



У меня все работает, я там исправлял позже DataCommands на мифический MyCommands , также проверь код. 
В XAML например кнопка в toolbar:
Код

<Button x:Name="tbCalcul" Margin="0" Command="MyCommands.CalcCommand", ToolTip="{Binding RelativeSource={RelativeSource Self}, Path=Command.Text}">

Метод CommandBindingInitialize() подключил?

Это сообщение отредактировал(а) SKrivosein - 14.7.2010, 23:34


--------------------
Оптимист - это плохо информированный человек.
user posted image

PM MAIL   Вверх
DenWPF
Дата 14.7.2010, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



да подключил.

"Ссылка типа не может найти общий тип с именем "MyCommand".  Ошибка в строке 46, позиция 58."

я класс MyCommand назвал.

это происходит при this.InitializeComponent(); после CommandBindingInitialize() 
PM MAIL   Вверх
SKrivosein
Дата 15.7.2010, 01:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Идущий в даль
**


Профиль
Группа: Участник
Сообщений: 271
Регистрация: 9.6.2007
Где: Praha - Прага

Репутация: нет
Всего: 8



?
Пространства имен...

Это сообщение отредактировал(а) SKrivosein - 15.7.2010, 02:54


--------------------
Оптимист - это плохо информированный человек.
user posted image

PM MAIL   Вверх
DenWPF
Дата 15.7.2010, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



одинаковые
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0788 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.