Windows 8.1 ToggleSwitch - 识别用户是否明确切换

时间:2014-10-09 17:10:11

标签: windows-8.1 toggleswitch

我无法区分用户是否明确切换切换开关或是否以编程方式打开/关闭。我需要在启动弹出窗口时为toggleswitch设置初始值。然后,如果用户明确更改值,我需要引发一个事件。 所以我尝试在ToggleSwitch上使用PointerReleased事件而不是Toggled事件,但这不会在某些机器上触发。

任何想法如何解决这个问题?

非常感谢提前

2 个答案:

答案 0 :(得分:0)

尝试将ToggleSwitch包装在透明网格中,并将Tapped事件处理程序设置为它。 Tapped事件只会通过用户交互引发。您还需要在Tapped事件处理程序内以编程方式切换它,以模仿标准行为。

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

答案 1 :(得分: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
        }
    }
}