如何在 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=刷;