在WPF中动态创建按钮

时间:2012-02-15 11:59:40

标签: c# wpf button

我尝试做一些WPF,直到现在才真正完成Windows窗体而不是很多...

我所要做的就是动态地在代码中(而不是xaml)设置一个按钮来显示图像,并将按钮的大小设置为自动调整大小。

下面的代码加载图像,但是当鼠标悬停在按钮上并且按钮没有自动调整图像大小时,它就会移动。

tbButtonPicture包含PC上的本地路径到位图,例如C:\temp\my Artwork\test1.bmp

这就是我到目前为止所处的循环内容:

Console.WriteLine(tbButtonPicture);
System.Windows.Controls.Button newBtn = new Button();
//newBtn.Content = i.ToString();
newBtn.Background = new ImageBrush(new BitmapImage(new Uri(BaseUriHelper.GetBaseUri(this), tbButtonPicture)));
newBtn.Name = "Button" + i.ToString();
sp.Children.Add(newBtn);

i++;

1 个答案:

答案 0 :(得分:2)

将图像包裹在图像控件中并将其设置为按钮内容,您应该具有所需的效果。

  System.Windows.Controls.Button newBtn = new Button();
  Image imageControl = new Image();
  imageControl.Source = new BitmapImage(new Uri(BaseUriHelper.GetBaseUri(this), tbButtonPicture));
  newBtn.Content = imageControl;
  newBtn.Name = "Button" + i.ToString();
  sp.Children.Add(newBtn);

  i++;

但我完全赞同上述评论: 尝试在xaml中更轻松地解决您的问题。阅读建议的资源,它们真的很有帮助。