如何在 WPF C# 中更改按钮图像背景
How to change button image background in WPF C#
我试图在单击按钮时更改 C# 中 WPF 应用程序中的图像。图像就像按钮的背景,但我不知道如何更改图像。有人可以给我一些建议吗?顺便说一句,我是 WPF 应用程序的新手。
我的XAML按钮代码:
<Window x:Class="Peel_App.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:local="clr-namespace:Peel_App"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Window.Resources>
<Grid x:Name="grid" HorizontalAlignment="Left" Height="420" VerticalAlignment="Top" Width="120" RenderTransformOrigin="0.5,0.5">
<Grid.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FF111556" Offset="0.069"/>
<GradientStop Color="#FF4440E7" Offset="0.256"/>
<GradientStop Color="#FFE420DA" Offset="0.744"/>
</LinearGradientBrush>
</Grid.Background>
<Grid.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform/>
</TransformGroup>
</Grid.RenderTransform>
<Button x:Name="btn_Menu" HorizontalAlignment="Left" VerticalAlignment="Top" Width="45" Height="40" Click="btn_Menu_Click" >
<Button.Background>
<ImageBrush/>
</Button.Background>
</Button>
<Button x:Name="btn_Menu_Continue" HorizontalAlignment="Left" VerticalAlignment="Top" Width="45" Height="40" BorderBrush="#FF111556" Click="btn_Menu_Continue_Click" >
<Button.Background>
<ImageBrush/>
</Button.Background>
</Button>
<Button x:Name="btn_Home" Content="" HorizontalAlignment="Left" Margin="0,117,0,0" VerticalAlignment="Top" Width="120" Height="44" Click="Button_Click" HorizontalContentAlignment="Center">
<Button.Background>
<ImageBrush ImageSource="home_Unselected.png" Stretch="None"/>
</Button.Background>
</Button>
更改图片的按钮:
这是我试过的
private void Button_Click(object sender, RoutedEventArgs e)
{
var brush = new ImageBrush();
brush.ImageSource = new BitmapImage(new Uri("home_Selected.png", UriKind.Relative));
btn_Home.Background = brush;
}
在构建操作中,您可以将图像文件标记为内容或资源。在 ImageBrush 中使用图像的语法因您选择的语法而异。
这是一个标记为内容的图像文件。
图片,标记为内容
要将按钮背景设置为此图像,请使用以下代码。
***var brush = new ImageBrush(); brush.ImageSource = new BitmapImage(new
Uri("Images/ContentImage.png",UriKind.Relative));
button1.Background = brush;**
这是一个标记为资源的图像文件。*
图片,标记为资源
[2]: https://i.stack.imgur.com/zyuMW.png
要将按钮背景设置为资源图像,请使用以下代码。
`***Uri resourceUri = new Uri("Images/ResourceImage.png",
UriKind.Relative);
StreamResourceInfo streamInfo =
Application.GetResourceStream(resourceUri);
BitmapFrame temp = BitmapFrame.Create(streamInfo.Stream);
var brush = new ImageBrush();
brush.ImageSource = temp;***`
button1.Background=刷;
我试图在单击按钮时更改 C# 中 WPF 应用程序中的图像。图像就像按钮的背景,但我不知道如何更改图像。有人可以给我一些建议吗?顺便说一句,我是 WPF 应用程序的新手。
我的XAML按钮代码:
<Window x:Class="Peel_App.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:local="clr-namespace:Peel_App"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Window.Resources>
<Grid x:Name="grid" HorizontalAlignment="Left" Height="420" VerticalAlignment="Top" Width="120" RenderTransformOrigin="0.5,0.5">
<Grid.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FF111556" Offset="0.069"/>
<GradientStop Color="#FF4440E7" Offset="0.256"/>
<GradientStop Color="#FFE420DA" Offset="0.744"/>
</LinearGradientBrush>
</Grid.Background>
<Grid.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform/>
</TransformGroup>
</Grid.RenderTransform>
<Button x:Name="btn_Menu" HorizontalAlignment="Left" VerticalAlignment="Top" Width="45" Height="40" Click="btn_Menu_Click" >
<Button.Background>
<ImageBrush/>
</Button.Background>
</Button>
<Button x:Name="btn_Menu_Continue" HorizontalAlignment="Left" VerticalAlignment="Top" Width="45" Height="40" BorderBrush="#FF111556" Click="btn_Menu_Continue_Click" >
<Button.Background>
<ImageBrush/>
</Button.Background>
</Button>
<Button x:Name="btn_Home" Content="" HorizontalAlignment="Left" Margin="0,117,0,0" VerticalAlignment="Top" Width="120" Height="44" Click="Button_Click" HorizontalContentAlignment="Center">
<Button.Background>
<ImageBrush ImageSource="home_Unselected.png" Stretch="None"/>
</Button.Background>
</Button>
更改图片的按钮:
这是我试过的
private void Button_Click(object sender, RoutedEventArgs e)
{
var brush = new ImageBrush();
brush.ImageSource = new BitmapImage(new Uri("home_Selected.png", UriKind.Relative));
btn_Home.Background = brush;
}
在构建操作中,您可以将图像文件标记为内容或资源。在 ImageBrush 中使用图像的语法因您选择的语法而异。
这是一个标记为内容的图像文件。
图片,标记为内容
要将按钮背景设置为此图像,请使用以下代码。
***var brush = new ImageBrush(); brush.ImageSource = new BitmapImage(new
Uri("Images/ContentImage.png",UriKind.Relative));
button1.Background = brush;**
这是一个标记为资源的图像文件。*
图片,标记为资源 [2]: https://i.stack.imgur.com/zyuMW.png
要将按钮背景设置为资源图像,请使用以下代码。
`***Uri resourceUri = new Uri("Images/ResourceImage.png",
UriKind.Relative);
StreamResourceInfo streamInfo =
Application.GetResourceStream(resourceUri);
BitmapFrame temp = BitmapFrame.Create(streamInfo.Stream);
var brush = new ImageBrush();
brush.ImageSource = temp;***`
button1.Background=刷;