发牌区代码-已经完成

本代码主要实现了纸牌的出牌动画。鼠标选中的牌前置,定义的牌可以任意指定大小,程序里面是5张,给每张牌定义了鼠标点击事件。

 

using System; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Ink; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using System.Windows.Media.Imaging; namespace SilverlightApplication1 { public partial class 玩家出牌区 : UserControl { public 玩家出牌区() { // Required to initialize variables InitializeComponent(); LoadPage(); } void LoadPage() { int count=5; //Image[] im=new Image[count]; int cc=-550; for(int i=1;i<=count;i++) { Rectangle r=new Rectangle(); r.Name="r"+i.ToString(); r.Fill = new ImageBrush() { ImageSource = new BitmapImage(new Uri("img/sha.jpg", UriKind.Relative))}; r.Width=96; r.Height=134; r.Margin=new Thickness(cc,80,0,0); LayoutRoot.Children.Add(r); cc+=200; } int A=0; foreach (var rec in LayoutRoot.Children) { if (rec is Rectangle) { var onerec = rec as Rectangle; //注册鼠标点击事件 onerec.MouseLeftButtonDown += new MouseButtonEventHandler(rec_MouseLeftButtonDown); } } //MessageBox.Show(A.ToString()); } void CardReset() { int ccc=-750; foreach (var rec in LayoutRoot.Children) { if (rec is Rectangle) { var onerec = rec as Rectangle; onerec.Margin=new Thickness(ccc,80,0,0);//图片复位 } ccc+=200; } } private void rec_MouseLeftButtonDown(object sender,MouseButtonEventArgs e) { //e.OriginalSource //(e.Source as FrameworkElement).Name; //MessageBox.Show((onerec.Margin.Left.ToString())); CardReset(); foreach (var rec in LayoutRoot.Children) { if (rec is Rectangle) { var onerec = rec as Rectangle; if(onerec.Name==(e.OriginalSource as FrameworkElement).Name) { double ileft = onerec.Margin.Left; double iTop = onerec.Margin.Top; MessageBox.Show(onerec.Name); onerec.Margin=new Thickness(ileft,40,0,0); //int left=onerec. //onerec.SetValue(onerec.Margin..LeftProperty,ileft+0); //设置矩形的起始X坐标 //onerec.SetValue(Canvas.TopProperty, ileft+10); } } } //r1.Margin=new Thickness(400,299,136,8);//图片前移 } } }   

 

//这次用到Rectangle做牌的承载体,需要引用using System.Windows.Media.Imaging;

麻烦的地方就是,如何访问程序中定义的Rectangle对象,烦死了。

 

搞定了,参见代码

作者:moremoreTea1983 发表于2011-2-19 17:36:00 原文链接
阅读:36 评论:0 查看评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值