C# ToggleButton在触摸设备上的行为不同

C# ToggleButton在触摸设备上的行为不同,c#,xaml,windows-8,windows-runtime,C#,Xaml,Windows 8,Windows Runtime,我这里有一段XAML代码: <ToggleButton x:Name="ColorPickerButton" Content="Button" HorizontalAlignment="Left" VerticalAlignment="Top" Style="{StaticResource Segment0}" Checked="ColorPickerChecked"

我这里有一段XAML代码:

<ToggleButton x:Name="ColorPickerButton" 
                          Content="Button" HorizontalAlignment="Left" VerticalAlignment="Top" Style="{StaticResource Segment0}" 
                          Checked="ColorPickerChecked" 
                          Unchecked="ColorPickerUnchecked">
                <ToggleButton.Transitions>
                    <TransitionCollection>
                        <EntranceThemeTransition FromHorizontalOffset="100" FromVerticalOffset="100"/>
                    </TransitionCollection>
                </ToggleButton.Transitions>
            </ToggleButton>
我觉得有点马虎。为什么它的行为会有所不同?这里有我遗漏的东西吗?我记得在其他应用程序中使用了
ToggleButton
,在我的记忆中,它似乎工作得很好。。。但不是在这里


干杯

我怀疑您的
切换按钮
的容器控件之一正在干扰这些事件


我在一个简单的容器中尝试了上面的xaml代码(在
堆栈面板中
网格中
),然后
选中的
未选中的
事件为我触发

我怀疑您的
ToggleButton
的容器控件之一正在干扰这些事件


我在一个简单的容器中尝试了上面的xaml代码(在
堆栈面板中
网格中
),然后
选中的
未选中的
事件为我触发

我希望事件“选中”被引发,而不是“单击”。你是说切换按钮上的“点击”事件会自动引发“选中”/“未选中”事件,而“点击”事件则不会?对不起,我的错,误读了这个问题。那么为什么不像你这样通过IsChecked bool呢?如果是这样的情况(比如通常使用的切换按钮),就不应该有任何马虎的地方。@RedPolygon-当我使用曲面时,
选中的
未选中的
事件会正确触发。(是的,我使用的是触摸按钮,而不是鼠标)。我只有一个
网格
,里面有一个
堆叠面板
,里面有一个
切换按钮
。My
ToggleButton
使用上面的xaml代码。我猜您的
切换按钮
容器控件之一干扰了
选中的
未选中的
事件。@这正是问题所在!ToggleButton包含在画布中,移除画布可以使控件正常工作。把它贴出来作为答案,这样我就可以接受了!(但它仍然在计算机上工作,而不是在触摸设备上工作,这很奇怪,但无论如何,它现在正在工作)。我希望事件“检查”被引发,而不是“点击”。你是说切换按钮上的“点击”事件会自动引发“选中”/“未选中”事件,而“点击”事件则不会?对不起,我的错,误读了这个问题。那么为什么不像你这样通过IsChecked bool呢?如果是这样的情况(比如通常使用的切换按钮),就不应该有任何马虎的地方。@RedPolygon-当我使用曲面时,
选中的
未选中的
事件会正确触发。(是的,我使用的是触摸按钮,而不是鼠标)。我只有一个
网格
,里面有一个
堆叠面板
,里面有一个
切换按钮
。My
ToggleButton
使用上面的xaml代码。我猜您的
切换按钮
容器控件之一干扰了
选中的
未选中的
事件。@这正是问题所在!ToggleButton包含在画布中,移除画布可以使控件正常工作。把它贴出来作为答案,这样我就可以接受了!(但它仍然在电脑上工作,而不是在触控设备上工作,这很奇怪,但不管怎样,它现在正在工作)。我也遇到了同样的问题,解决方法也有点不同。在下面的博文中,我描述了这个问题的原因和解决方法:我遇到了同样的问题,但解决方法有点不同。在以下博文中,将介绍问题的原因和解决方案:
private void ColorPickerButton_Tapped(object sender, TappedRoutedEventArgs e)
        {
            var s = sender as ToggleButton;
            if(s != null)
                s.IsChecked = !s.IsChecked;
        }