C# WPF中动态创建的按钮

C# WPF中动态创建的按钮,c#,wpf,button,C#,Wpf,Button,我正在尝试做一点WPF,直到现在才真正做windows窗体,而不是很多 我所要做的就是在代码(不是xaml)中动态地设置一个按钮来显示图像,并将按钮的大小设置为图像的自动大小 下面的代码加载图像,但当鼠标悬停在按钮上时,按钮不会自动调整图像大小 tbButtonPicture包含电脑上位图的本地路径,例如C:\temp\my Artwork\test1.bmp 到目前为止,这是我在一个循环中得到的: Console.WriteLine(tbButtonPicture); System.Windo

我正在尝试做一点WPF,直到现在才真正做windows窗体,而不是很多

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

下面的代码加载图像,但当鼠标悬停在按钮上时,按钮不会自动调整图像大小

tbButtonPicture
包含电脑上位图的本地路径,例如
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++;

将图像包装在图像控件中,并将其设置为按钮内容,您应该会获得所需的效果

  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中解决您的问题—它更容易。阅读推荐的参考资料,它们真的很有帮助。

对不起,Nemesv,我用一个问题更新了它!为什么不添加一些
ItemsControl
派生类并将其绑定到数据容器?嗨,Serge,谢谢你的建议,但我不知道该怎么做!我将谷歌项目控制。如果你只是在winforms中设置一个属性,那就容易多了:(我想即使是这个简单的任务也会给我很多新的东西去学习……阅读,尤其是那些关于和的东西。