更改按钮背景

问题描述:

几经尝试更改按钮的背景,并获得铸件的错误,像我finnaly走到这一步的事情:更改按钮背景

Uri dir = new Uri("red_flag.png",UriKind.RelativeOrAbsolute); 
ImageSource source = new System.Windows.Media.Imaging.BitmapImage(dir); 
ImageBrush bru = new ImageBrush(); 
bru.ImageSource=source; 
bru.Opacity = 100; 

此代码不会产生错误,但我可以我看到变化时,我打电话:

button1.background = bru; 

它只是做任何事情! :(

发现阅读米克的答案后,答案myelf,我与你分享我所做的:

Uri dir = new Uri("red_flag.png", UriKind.Relative); 
ImageSource source = new System.Windows.Media.Imaging.BitmapImage(dir); 
Image image = new Image(); 
image.Source = source; 
StackPanel stack = new StackPanel(); 
stack.Children.Add(image); 
myButton.Content = stack; 

感谢您的帮助

更新1: 为了获得最佳效果,请将按钮的填充属性设置为0(在每种情况下),以便图像可以自动调整大小以填充所有按钮,请注意,这可能会隐藏您的实际内容,这是我想要的情况。

如果这个代码是相同的按钮,您将有这个问题的单击事件处理程序的一部分。

彼得托解释了为什么在这里,并提供解决方案。

Why can't I change the Background of my Button on a Click event?

+0

但是这需要我声明buttonson XAML x_X,我的程序的性质要求我以编程方式创建按钮 – 2010-11-29 02:27:32

+0

如何创建基于Blend生成的xaml的样式,然后以编程方式分配它 - http://forums.silverlight.net/forums/p/13115/42706.aspx – 2010-11-29 08:02:42