Отправка щелчка мыши на кнопку в Silverlight 2

В приложении silverlight есть кнопочное управление. Могу ли я программно отправить ему событие щелчка мыши?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
0
8 214
6

Ответы 6

Я не использовал Silverlight, но предполагаю, что это тот же процесс, что и Windows.Forms и WebControls. Вам просто нужно вызвать метод кнопки .Click(Object o, EventArgs e).

Вы не можете активировать событие Click по соображениям безопасности, потому что тогда вы сможете делать такие вещи, как принудительный переход пользователя в полноэкранный режим, без их ведома. Как сказал Оли, вы можете вызвать обработчик события Click напрямую, но на самом деле вы не можете запустить событие Click.

Классический способ сделать это в .Net - это выполнить P / Invoke SendInput () из user32.dll, так как это невозможно сделать с помощью .Net framework.

Я не знаком с Silverlight, но знаю, что он использует компактную песочницу .Net, поэтому, если совместимость доступна, вы найдете множество примеров в Интернете.

У меня есть кнопки для операций CRUD на моей странице, после сохранения, удаления или обновления мне нужно обновить данные в Datagrid. Самый простой способ - отправить событие щелчка на кнопку «Читать» из других кнопок CRUD

Этот код запускает это событие:

    private void btnSave_Click(object sender, RoutedEventArgs e)
    {
  //.....Save Operation

      //--At Finish refresh the datagrid
      btnRead_Click(btnRead, new RoutedEventArgs());
    }

Попробуйте использовать одноранговые узлы автоматизации (если вам абсолютно необходимо сделать это программно).

http://www.vbdotnetheaven.com/UploadFile/dbeniwal321/TriggerEvent01232009020637AM/TriggerEvent.aspx имеет образец с использованием vb.net

Идеальным способом было бы иметь общую функцию, которая вызывается как из обработчика нажатия кнопки, так и в других случаях, когда это необходимо.

Если вы все еще хотите это сделать. Теперь вы можете выполнить обновление до Silverlight версии 3.0 или более поздней и сделать следующее:

Вы можете использовать одноранговую кнопку автоматизации из System.Windows.Automation.Peers, чтобы выполнить то, что вы хотите.

if (button is Button)
{
    ButtonAutomationPeer peer = new ButtonAutomationPeer((Button)button);

    IInvokeProvider ip = (IInvokeProvider)peer;
    ip.Invoke();
}

Другие вопросы по теме