Отправка щелчка мыши на кнопку в Silverlight 2 - PullRequest
3 голосов
/ 09 октября 2008

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

Ответы [ 6 ]

12 голосов
/ 22 июня 2010

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

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

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

    IInvokeProvider ip = (IInvokeProvider)peer;
    ip.Invoke();
}
1 голос
/ 09 октября 2008

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

0 голосов
/ 22 февраля 2010

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

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

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

0 голосов
/ 10 января 2010

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

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

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

      //--At Finish refresh the datagrid
      btnRead_Click(btnRead, new RoutedEventArgs());
    }
0 голосов
/ 10 октября 2008

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

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

0 голосов
/ 09 октября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...