2012-12-25 25 views
1

我有ButtonsWrapPanel,那些正在动态创建。我想要更改Click_event上特定Button的高度/宽度。wpf从包装面板找到一个按钮

这里是我在做:

for (int i = 1; i <= count; i++) 
    { 
       btn = new Button(); 
       btn.MinHeight = 22; 
       btn.MinWidth = 22; 

       btn.Content = i.ToString(); 
       int _id = id++; 
       btn.Name = "btn"+_id.ToString(); 
       wrpQuestionsMap.Children.Add(btn); 

       btn.Click += new RoutedEventHandler(btn_Click); 
    } 

    private void btnNext_Click_1(object sender, RoutedEventArgs e) 
     { 
      if (this.view.CurrentPosition < this.view.Count - 1) 
      { 
       this.view.MoveCurrentToNext(); 

       Button b = (Button)this.wrpQuestionsMap.FindName("btn"+view.CurrentPosition.ToString()); 
       if (b != null) 
       { 
        b.Width = 30; 
       } 
      } 
     } 

上面我已经试过,但它越来越空,不知道为什么。 请帮 谢谢

回答

1

如果我理解正确的,你想改变点击的按钮尺寸: 对于此行的代码:

btn.Click += new RoutedEventHandler(btn_Click); 

,你应该有这样的方法:

void btn_Click(object sender, RoutedEventArgs e) 
{ 
    Button btn=(Button)sender; // this is the clicked Button 
    btn.Width=30.0;   //changes its Width 
} 

编辑:

foreach (Button btn in wrpQuestionsMap.Children) 
{ 
    string name= btn.Content.ToString(); 
    if (name == "yourName") // yourName is the name you are searching for 
    { 
     btn.Width = 30.0 //change size 
     break;    // no need to search more 
    } 
} 

编辑2: 从您的问题中的代码,似乎您的按钮的内容是一个数字btn.Content = i.ToString();。你在评论中说view.CurrentPosition.ToString()是你当前问题的数量。如果你想改变这个按钮的宽度,使用方法:

foreach (Button btn in wrpQuestionsMap.Children) 
{ 
    string name= btn.Content.ToString(); // it must be a number, check it in the debug, and if it is not, Let me know 
    if (name == view.CurrentPosition.ToString()) 
    { 
     btn.Width = 30.0 //change size 
     break;    // no need to search more 
    } 
} 

如果你想改变另一个按钮的宽度,你应该让我知道什么是写在该按钮。

+0

请先检查我的应用程序屏幕截图。
在此应用程序中,用户从左侧选择一个主题以生成该主题的在线测试。
选择主题后,我在右侧动态添加按钮。
我想改变按钮在右侧的按钮高度/宽度。的问题目前在屏幕上。而已。 – Deepak

+0

@Deepak你愿意解释最后一句(我想改变......)多一点吗? – Ramin

+0

假设用户在第5号。的问题,在这种情况下,按钮号的宽度。 5应该在应用程序的快速查看部分中更改,所有按钮都在快速查看的包装面板中。 – Deepak