是否有任何方法可以操作WPF中按钮的背景图像
本文关键字:按钮 背景 图像 WPF 操作 任何 方法 是否 | 更新日期: 2023-09-27 18:19:43
我需要给出背景图像的大小,因为我作为背景图像添加到按钮的图标图像(32x32)对按钮来说太大了,看起来很糟糕,XAML代码是这样的:
<Window x:Class="apple.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow">
<Grid>
<Image Source="C:'Users'Fernando'Desktop'Eye-Mouse'apple'apple'img0.jpg" Stretch="Fill"/>
<UniformGrid Name="gridx" Rows="6">
</UniformGrid>
</Grid>
</Window>
在uniformGrid中,我添加了一些按钮,比如:
ImageBrush ib = new ImageBrush();
System.Windows.Controls.Button newBtn = new Button();
FileToImageIconConverter some = new FileToImageIconConverter(link[n]);
ImageSource imgSource = some.Icon;
ib.ImageSource = imgSource;
newBtn.Background = ib;
gridx.Children.Add(newBtn);
谢谢你的帮助。
您可能需要使用Xaml&数据绑定以填充统一网格。通过这种方式,可以随心所欲地在"表达式混合"中设置按钮的样式。
<Window x:Class="apple.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow">
<Grid>
<Image Source="C:'Users'Fernando'Desktop'Eye-Mouse'apple'apple'img0.jpg" Stretch="Fill"/>
<!-- YourLinkList is the list that provides the link[n] in your example -->
<ItemsControl ItemsSource="{Binding Path=YourLinkList}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Rows="6"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button>
<Button.Background>
<ImageBrush>
<ImageBrush.ImageSource>
<!-- {Binding .} means that the UriSource is bound to the item in the link list -->
<BitmapImage UriSource="{Binding .}" DecodePixelWidth="32" DecodePixelHeight="32"/>
</ImageBrush.ImageSource>
</ImageBrush>
</Button.Background>
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
</Window>
您也可以尝试将图像设置为按钮的内容,而不是将其用作背景。也许那样会更好看。