2014-10-09 5 views
0

Я не могу отличить, если пользователь явно переключает тумблер или если он был включен/выключен программно. Мне нужно установить начальные значения для toggleswitch при запуске всплывающего окна. А потом, если пользователь явно меняет значения, мне нужно создать событие. Итак, я попытался использовать событие PointerReleased в ToggleSwitch вместо события Toggled, но это не запускается на определенных машинах.Windows 8.1 ToggleSwitch - идентифицировать, если пользователь явно переключен

любые идеи, как я могу решить эту проблему?

Спасибо большое заранее

ответ

0

Попробуйте обернуть ToggleSwitch в прозрачной сетки и набор постучала обработчик событий к нему. Событие Tapped будет вызвано только взаимодействием пользователя. Вам также необходимо будет переключать его программно внутри обработчика событий Tapped, чтобы имитировать стандартное поведение.

<Grid Tapped="ToggleSwitchGrid_Tapped" 
     Background="Transparent"> 
    <ToggleSwitch IsHitTestVisible="False" /> 
</Grid> 
0

PointerReleased может решить вашу проблему. Просто определите, есть ли указатель слева:

void ToggleSwitch_PointerPressed(object sender, PointerRoutedEventArgs e) 
{ 
    // Check for input device 
    if (e.Pointer.PointerDeviceType == Windows.Devices.Input.PointerDeviceType.Mouse) 
    { 
     var properties = e.GetCurrentPoint(this).Properties; 
     if (properties.IsLeftButtonPressed) 
     { 
      // Left button pressed 
     } 
     else if (properties.IsRightButtonPressed) 
     { 
      // Right button pressed 
     } 
    } 
}