我需要将一个具有小部件的Android应用程序移植到WP8。
为此,我需要创建自己的切换按钮(用户控件)。所以我刚刚创建了一个名为MyToggleButton的Button子类,并使用标准回调来更改图像和按钮文本。
要抓住点击,我使用onMouseEnter
,当点击完成后,即moud按钮再次上升我使用onMouseLeave
这可以毫无问题地工作 - 问题是当点击onMouseEnter
似乎被稍微延迟调用时,此按钮以最小延迟更改ButtonImage而不是普通按钮(我正在使用Visual Studio Express 2012 with Emulator,因为我还没有真正的手机进行测试)
虽然我发现了在XAML中创建用户控件的其他方法,但是我发现只是简单地使用标准方法的描述方式。我只是不确定,这个最小的延迟来自哪里。
答案 0 :(得分:0)
在第一种情况下,您可能不应该进行自定义切换。从Android移植应用程序并不意味着您还必须移植其图形。他们根本不共享相同的设计语言。你可能应该坚持原生的WP8切换。
但是,如果您确实要创建自定义复选框/切换,则应检查this。这是为WP7制作的,但它也适用于WP8。
答案 1 :(得分: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>