0

我需要将具有小部件的 Android 应用程序移植到 WP8。

为此,我需要创建自己的切换按钮(用户控件)。所以我刚刚创建了一个名为 MyToggleButton 的 Button 子类,并使用标准回调来更改按钮的图像和文本。

为了捕捉我使用onMouseEnter的点击,当点击完成时,我使用 moud 按钮再次上升onMouseLeave

虽然这可以毫无问题地工作 - 问题是当单击onMouseEnter似乎有一点延迟时,这个按钮会以最小的延迟更改 ButtonImage,而不是普通按钮(我使用 Visual Studio Express 2012 和模拟器,因为我这样做了还没有真正的手机进行测试)

虽然我发现了在 XAML 中创建用户控件的其他方法,但我发现所描述的仅使用标准方法的方法更容易。我只是不确定,这个最小的延迟是从哪里来的。

4

2 回答 2

0

在第一种情况下,您可能不应该进行自定义切换。从 Android 移植应用程序并不意味着您还必须移植其图形。他们根本不共享相同的设计语言。您可能应该坚持使用原生 WP8 切换。

但是,如果你真的想创建一个自定义复选框/切换,你应该检查这个。这是为 WP7 制作的,但也适用于 WP8。

于 2012-12-13T03:22:05.550 回答
0

这是一个使用图像的简化“切换”按钮。基于CheckBox

<Style TargetType="{x:Type CheckBox}" >
            <Setter Property="Template" >
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type CheckBox}">
                        <Grid>
                            <ContentPresenter x:Name="Part_Content" />
                            <Image Name="image" Source="/WpfApplication4;component/Images/avatar63.jpg" />
                        </Grid>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsChecked" Value="true" >
                                <Setter TargetName="image" Property="Source" Value="/WpfApplication4;component/Images/imagesCA7JZMMY.jpg"/>
                            </Trigger>
                            <Trigger Property="IsChecked" Value="False" >
                                <Setter TargetName="image" Property="Source" Value="/WpfApplication4;component/Images/avatar63.jpg"/>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
于 2012-12-13T03:43:00.677 回答