惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

有赞技术团队
有赞技术团队
H
Hackread – Cybersecurity News, Data Breaches, AI and More
I
InfoQ
J
Java Code Geeks
Microsoft Security Blog
Microsoft Security Blog
G
Google Developers Blog
D
DataBreaches.Net
Recent Announcements
Recent Announcements
Microsoft Azure Blog
Microsoft Azure Blog
B
Blog RSS Feed
Y
Y Combinator Blog
博客园 - 【当耐特】
博客园 - 聂微东
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
大猫的无限游戏
大猫的无限游戏
P
Proofpoint News Feed
量子位
C
Check Point Blog
F
Fortinet All Blogs
罗磊的独立博客
Last Week in AI
Last Week in AI
GbyAI
GbyAI
L
LangChain Blog
博客园 - 司徒正美

博客园 - montaque

xp 与 windows 7 共享收藏夹 Microsoft ILM V2 新特性 云计算 PDC , XAML 2009以及未来 PDC , KeyNote2 个人计算,Windows 7+ Live Service PDC - C#4.0 以及未来 PDC 第一天总结 PDC 2008 WPF/Silverlight 中利用XamlReader /Writer 来处理对象的序列化反序列化 让你的Expression XAML 编辑器支持智能提示 Powershell 脚本自动下载 FTP Server上面固定格式的文件 EDI batch Receiving in Biztalk 2006 R2 EDI Party Resolution in Biztalk R2 EDI in Biztalk 2006 R2 Hello,Biztalk 2006 R2 BAM, WCF 集成 Hello, Biztalk 2006 R2 BAM what's new in Biztalk 2006 R2 hello biztalk R2 Mix08
silverlight 测试
montaque · 2008-08-02 · via 博客园 - montaque

最近几天参加了IdentityMine 的一个Silverlight培训。 identityMine跟微软的公司很好,他做的很多Case都是Microsoft的。可以从www.identityMine.com 看到他们在WPF和Silverlight方面的一些case。

他们公司的人大概有三种,一种是Designer一种是开发人员。另外一个很重要的就是Integrator。做两者的沟通,培训的一个将是 Robby 就是一个integrator。很有designer的sense,技术有不错。

推荐他的blog, www.nerdplusart.com 他的blog还被列在sliverlight的showcase上面。

他还做了一个xaml 编辑工具 http://kaxaml.com/。 

对于开发人员,我们更多的考虑数据的集成,业务的设计。而很多界面和动画上的东西都会觉得很复杂,以前我觉得做一个小球在箱子理撞来撞去的应用觉得很复杂,要计算运动轨迹。。。

后来看了一个他们做的demo,超简单。代码如下,呵呵。就是xy按照不同的速度然后原路运动而已。一下是一个demo,呵呵

<Canvas.Resources>

            <EventTrigger x:Name="et" RoutedEvent="Canvas.Loaded">

            <BeginStoryboard >                

                <Storyboard>

                    <DoubleAnimation BeginTime="0" Duration="0:0:3" Storyboard.TargetName="red" 

Storyboard.TargetProperty="(Canvas.Left)" From="0" To="350" AutoReverse="True" RepeatBehavior="Forever" ></DoubleAnimation>

                    <DoubleAnimation BeginTime="0" Duration="0:0:2" Storyboard.TargetName="red" 

Storyboard.TargetProperty="(Canvas.Top)" From="0" To="350" AutoReverse="True" RepeatBehavior="Forever"></DoubleAnimation>

                    <DoubleAnimation BeginTime="0" Duration="0:0:3" Storyboard.TargetName="green" 

Storyboard.TargetProperty="(Canvas.Left)" From="50" To="350" AutoReverse="True" RepeatBehavior="Forever" ></DoubleAnimation>

                    <DoubleAnimation BeginTime="0" Duration="0:0:2" Storyboard.TargetName="green" 

Storyboard.TargetProperty="(Canvas.Top)" From="50" To="350" AutoReverse="True" RepeatBehavior="Forever"></DoubleAnimation>

                    <DoubleAnimation BeginTime="0" Duration="0:0:3" Storyboard.TargetName="blue" 

Storyboard.TargetProperty="(Canvas.Left)" From="100" To="350" AutoReverse="True" RepeatBehavior="Forever" ></DoubleAnimation>

                    <DoubleAnimation BeginTime="0" Duration="0:0:2" Storyboard.TargetName="blue" 

Storyboard.TargetProperty="(Canvas.Top)" From="100" To="350" AutoReverse="True" RepeatBehavior="Forever"></DoubleAnimation>   

                    </Storyboard>

            </BeginStoryboard>

            </EventTrigger>

        </Canvas.Resources>

<Ellipse Height="50" Width="50" Fill="#FFEE6C13"   StrokeThickness="0" x:Name="red" 

HorizontalAlignment="Left" VerticalAlignment="Top"/>

<Ellipse Width="50" Fill="#FFB3E80C"   StrokeThickness="0" Height="50" x:Name="green" 

HorizontalAlignment="Left" VerticalAlignment="Top"/>

<Ellipse Width="50" Fill="#FF09D1F0"   StrokeThickness="0" Height="50" x:Name="blue" 

HorizontalAlignment="Left" VerticalAlignment="Top"/>

</Canvas>