1

我在这里有这段 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>

它在我的电脑上运行良好;并且工作正常是指方法ColorPickerChecked,并且ColorPickerUnchecked在我单击ToggleButton. 但是,在触摸设备(Microsoft Surface)上,根本不会调用这些方法。但是,Tapped如果我将其添加到 XAML 中,则会正确引发该事件。Tapped现在,这是引发事件时调用的方法:

private void ColorPickerButton_Tapped(object sender, TappedRoutedEventArgs e)
        {
            var s = sender as ToggleButton;
            if(s != null)
                s.IsChecked = !s.IsChecked;
        }

我觉得有点草率。为什么它的行为不同?我在这里缺少什么吗?我记得ToggleButton在其他应用程序中使用它,在我的记忆中它似乎工作正常......但不是在这里!

干杯

4

1 回答 1

1

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

StackPanel我在一个简单的容器内(在 a inside a 内Grid)尝试了上面的 xaml 代码,并且为我触发了CheckedandUnchecked事件。

于 2013-06-20T00:21:34.510 回答