我正在寻找一个WPF教程,就像在iPhone上创建一个幻灯片开/关开关。
下面是一个示例(“发送所有流量”选项)https://secure-tunnel.com/support/software_setup/iphone/images/iphone_vpn_settings.jpg
我正在寻找一个WPF教程,就像在iPhone上创建一个幻灯片开/关开关。
下面是一个示例(“发送所有流量”选项)https://secure-tunnel.com/support/software_setup/iphone/images/iphone_vpn_settings.jpg
6条答案
按热度按时间iih3973s1#
我还没有看过关于这个问题的教程,但是我想你可以从启动Expression Blend开始,在它上面放一个复选框。然后选择复选框,进入主菜单-对象-〉编辑样式-〉编辑副本
这将使Blend生成CheckBox的默认样式,以便您能够修改它。看看这里的工作原理,您将能够获得一些结果。
基本上(除了颜色和画笔的东西),你需要查看与IsChecked属性挂钩的触发器。例如,当IsChecked为True时,你将矩形移动到一边,显示ON单词并隐藏OFF单词。要动画化这个,你只需要添加触发器的进出动画。
UPD:我花了10-15分钟的时间来制作一个“原型”:
如果您感兴趣,我还建议您阅读WPF中的样式和模板。
wvt8vs2t2#
我根据arconaut的帖子用橙子和蓝色创建了一些样式。
截图:
我希望我的风格更接近iOS设备的开关风格。这种风格的一个区别是,滑动动画只滑动开关,而不是下面的指示器。也许如果我能找到一些时间,我会修改它的方式。在那之前,我想分享我的结果。它不完美,但这里是代码。
yhqotfr83#
一些开源ToggleSwitch:
nfs0ujit4#
我刚刚发布了一个关于这个的条目,它提供了一个适当的滑动动作,完全的可配置性,不需要是一个固定的大小(很恼火,因为我在网上找不到任何提供这样一个解决方案的东西)。
您可以在这里找到它:http://itsallaboutthexaml.blogspot.com/2012/01/variables-in-animation.html
cbwuti445#
我也开始完成同样的任务,但是这些示例在产品代码中有一点欠缺。例如,如果您将文本(如On/Off或文本的本地化版本)放入控件中,答案是您必须定义控件的大小,因为在呈现控件之后,您无法修改动画或模板触发器。所有不适用于本地化文本解决方案。
我的解决方案是使用控件的Loaded事件和FrameworkElementFactory类动态创建控件的模板。我不得不说,这是非常复杂的,但可以实现。简单地说,在您的代码后面,创建一个模板,如所述,设置您的开/关文本的依赖属性,使用文本度量来确定控件的宽度,高度和动画值。
很抱歉,我不能发布解决方案,因为它现在属于Avanquest。
请在SystemSuite和Fix-It 12中查找。
q35jwt9p6#
我喜欢arconaut的不错的原型,我添加了一些代码来让边界变圆。
您必须从Grid声明中删除“Background”属性,并在Grid声明和第一个TextBlock声明之间添加以下行: