首页 新闻 会员 周边

WPF求教高手

0
悬赏园豆:30 [已解决问题] 解决于 2012-03-20 10:25

页面有5个筹码按钮,分别代表的筹码是1、5、10、50、100,我想实现的功能是:点击一个筹码按钮,就在页面显示一个颜色相对应的筹码,点击第二个,就把第二个筹码摞在第一个上面,一次类推,如果出现5个1的筹码,就让它显示一个5的筹码,2个5的筹码就换成一个10的筹码,后面也一样;

因为我不确定筹码会摞多高,所以我用了一个for循环来堆筹码:

for (int i = 0; i < counter; i++)
{
  Label lb = new Label();
  lb.Width = 50;
  lb.Height = 35;
  lb.Name = "lbEAChip_Idle" + i;
  lb.FontFamily = new FontFamily("LiSu");
  lb.HorizontalAlignment = HorizontalAlignment.Left;
  lb.VerticalAlignment = VerticalAlignment.Bottom;
  lb.FontWeight = FontWeights.Bold;
  Canvas.SetTop(lb, i * (-2));
  lb.Background = Brushes.Transparent;
  lb.HorizontalContentAlignment = HorizontalAlignment.Center;
  lb.VerticalContentAlignment = VerticalAlignment.Center;

  canEAChip_Idle5.Children.Add(lb);
}

但是后面的我就不知道怎么写了,而且那个lb.Name = "lbEAChip_Idle" + i;到后面我也不知道怎么获取这个值,哪位高手知道的教下我,或者给个思路,谢谢!

路晚歌的主页 路晚歌 | 初学一级 | 园豆:3
提问于:2012-03-19 15:24
< >
分享
最佳答案
0

       string lablbEAChip_Idle = "lbEAChip_Idle";
            int intlbEAChip_Idle=lablbEAChip_Idle.Length;
            foreach (UIElement element in canEAChip_Idle5.Children)
            {
                Label labn = element as Label;
                if(labn!=null){
                    string name = labn.Name;
                    int i =int.Parse( name.Substring(intlbEAChip_Idle));
                }
            }

收获园豆:30
無限遐想 | 老鸟四级 |园豆:3740 | 2012-03-19 15:48

這裡的lab就是你上面的lab。i就等於你上面的i

無限遐想 | 园豆:3740 (老鸟四级) | 2012-03-19 15:49

能否解释下你那代码呢,刚学WPF不久,菜鸟一个,望包涵!

路晚歌 | 园豆:3 (初学一级) | 2012-03-19 17:26

@路晚歌: canEAChip_Idle5.Children得到所有的 canEAChip_Idle5裏面的對象,

然後   Label labn = element as Label;對對象進行轉換。是否是label對象

    if(labn!=null){
                    string name = labn.Name;
                    int i =int.Parse( name.Substring(intlbEAChip_Idle));
                }

如果labn轉換成功,

labn.Name;得到對象的名稱

int i =int.Parse( name.Substring(intlbEAChip_Idle));取得 這個對象的 數值

name.Substring(intlbEAChip_Idle)是 取得從int intlbEAChip_Idle=lablbEAChip_Idle.Length;

開始的字符串

最後一步 在轉換成int類型int.Parse

無限遐想 | 园豆:3740 (老鸟四级) | 2012-03-19 17:31

@無限遐想: 謝謝!如果頁面摞了4個1的籌碼,我要是再加一個籌碼1的話,不讓它顯示5個籌碼1,而是顯示一個5的籌碼,你知道這個怎麼實現嗎,給個思路也行。

路晚歌 | 园豆:3 (初学一级) | 2012-03-20 09:06

@路晚歌: 把显示位置的换成5不就行了吗?

無限遐想 | 园豆:3740 (老鸟四级) | 2012-03-20 09:27

@無限遐想: 怎麼獲得那個顯示的位置,顯示的位置不確定的,比方說:要是一直點的是籌碼1,那理所當然顯示的位置是第一個label,也就是最下面那個,但要是第一次點的是籌碼10的話,我再去點5次籌碼1,那那個顯示的位置就是第二個label了,本人愚鈍,邏輯不行,問題解決了加分謝謝!

路晚歌 | 园豆:3 (初学一级) | 2012-03-20 09:54

@路晚歌: 这个应该是一个算法问题。你 每一个lab都有位置哦。只要够5,那么你就把5的位置用1代替了。然后不显示1哦。

無限遐想 | 园豆:3740 (老鸟四级) | 2012-03-20 10:00

@無限遐想: 还是没有解决,不过还是谢谢你的回答!

路晚歌 | 园豆:3 (初学一级) | 2012-03-20 10:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册