#c# #visual-studio #xaml #windows-10-iot-core
#c# #visual-студия #xaml #windows-10-iot-core #visual-studio
Вопрос:
Я использую Visual Studios для создания приложения Windows IoT. В графическом интерфейсе приложения есть кнопка, которая при удержании нажатой с помощью щелчка мыши или нажатия клавиши выполняет действие, в этом случае текстовое поле изменяет свой текст и запускается движок. Когда кнопка отпущена, текстовое поле изменяет свой текст и двигатель останавливается.
Я создал кнопку в файле .xml и событие button_holding в файле .cs, но это не выполняет никаких действий.
Ответ №1:
В графическом интерфейсе приложения есть кнопка, которая при удержании нажатой с помощью щелчка мыши или нажатия клавиши выполняет действие, в этом случае текстовое поле изменяет свой текст и запускается движок. Когда кнопка отпущена, текстовое поле изменяет свой текст и двигатель останавливается.
Вы можете использовать PointerPressedEvent и PointerReleasedEvent для достижения этого. Этот код работает для меня:
public MainPage()
{
this.InitializeComponent();
myButton.AddHandler(PointerPressedEvent, new PointerEventHandler(myButton_PointerPressed), true);
myButton.AddHandler(PointerReleasedEvent, new PointerEventHandler(myButton_PointerReleased), true);
}
private void myButton_PointerPressed(object sender, PointerRoutedEventArgs e)
{
myText.Text = "Running...";
}
private void myButton_PointerReleased(object sender, PointerRoutedEventArgs e)
{
myText.Text = "Stopped";
}
Ответ №2:
Вы можете использовать событие удержания, чтобы получить аналогичные наведение курсора мыши и наведение курсора мыши в традиционных WinForms, например
private void Button_Holding(object sender, HoldingRoutedEventArgs e)
{
if (e.HoldingState == Windows.UI.Input.HoldingState.Started)
{
//do things when button on hold
}
else if (e.HoldingState == Windows.UI.Input.HoldingState.Completed ||
e.HoldingState == Windows.UI.Input.HoldingState.Canceled)
{
//do things when button release
}
}