我正在尝试将图像作为按钮背景,我看到很多关于此的问题,更好的方法似乎是创建自定义ImageButton的子类按钮。
无论如何,我尝试使用ImageBrush将图像设置为按钮背景,但它不起作用,如下所示:
Button b = new Button();
ImageBrush ib = new ImageBrush();
ib.ImageSource = home;
b.Background = ib;
将图像设置为内容:
Image i = new Image();
i.Source = home;
Button b = new Button();
b.Content = home;
然后我看到ImageButton class,我已下载并添加到项目中。
但是我无法编译它
static ImageButton() {
DefaultStyleKeyProperty.OverrideMetadata(typeof(ImageButton), new FrameworkPropertyMetadata(typeof(ImageButton)));
}
public static readonly DependencyProperty ImageSizeProperty =
DependencyProperty.Register("ImageSize", typeof(double), typeof(ImageButton),
new FrameworkPropertyMetadata(30.0, FrameworkPropertyMetadataOptions.AffectsRender));
基本上我收到了这个错误:
'System.Windows.DependencyProperty' does not contain a definition for 'OverrideMetadata' and no extension method 'OverrideMetadata' accepting a first argument of type 'System.Windows.DependencyProperty' could be found (are you missing a using directive or an assembly reference?)
The type or namespace name 'FrameworkPropertyMetadata' could not be found (are you missing a using directive or an assembly reference?)
The name 'FrameworkPropertyMetadataOptions' does not exist in the current context
有人可以告诉我如何解决这个问题?或者如果我在做背景图像或制作它的方法时做错了,只需要一个带有图像填充它的按钮,没有填充或边距或边框。
答案 0 :(得分:2)
如果您只想要一个以图像为背景的按钮,请尝试使用
<Grid>
<Button BorderThickness="0">
<Button.Background>
<ImageBrush Stretch="None" ImageSource="your_image.jpg"/>
</Button.Background>
</Button>
<Grid>
答案 1 :(得分:0)
您只需使用ImageBrush
。
var brush = new ImageBrush();
brush.ImageSource = new BitmapImage(new Uri("ms-appx:/Assets/SmallLogo.png"));
Button1.Background = brush;
查看this主题。
希望它有所帮助!