WPF.使用c#在按钮中添加图像和文本

本文关键字:添加 图像 文本 按钮 使用 WPF | 更新日期: 2023-09-27 18:05:11

我有一个大按钮(灰色边界),在那里我必须使用c#添加图像,我也必须使用c#在图像下添加文本(按钮内部也有红色按钮),我真的不明白如何在c#代码中添加图像(和文本)以及如何调用它。它必须是button。content=image。我找到了一些信息,但我不明白用c#写什么?

我的xaml

:

  <Style x:Key="ButtonStyle"  TargetType="{x:Type Button}">
        <Setter Property="Foreground" Value="Black"/>
        <Setter Property="HorizontalContentAlignment" Value="Center"/>
        <Setter Property="FontSize" Value="20px" />
        <Setter Property="ToolTipService.IsEnabled" Value="False"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Button}">
                    <Border BorderBrush="#E6E6E6" BorderThickness="1">
                        <Grid x:Name="btnGrid" Width="320px" Height="320px">
                            <Image  Grid.Row="0"
                                  Stretch="Fill"
                                  HorizontalAlignment="Center"
                                  Width="131" 
                                  Height="98"
                                  Margin="0,69px,0,0"
                                  Source="{TemplateBinding Content}" />
                            <TextBlock  x:Name="btnText" Grid.Row="0"
                                      Text="{TemplateBinding ToolTip}"
                                      HorizontalAlignment="Center" 
                                      Margin="0,207,0,0"
                                      TextAlignment="Center"
                                      TextWrapping="Wrap"
                                      FontFamily="{TemplateBinding FontFamily}"
                                      FontSize="{TemplateBinding FontSize}"
                                      Foreground="{TemplateBinding Foreground}" 
                                      FontStretch="{TemplateBinding FontStretch}" />
                            <Button  x:Name="btnButton" Grid.Row="2" Style="{DynamicResource MetroButtonStyle}" 
                                      ToolTip="{TemplateBinding ToolTip}"
                                      HorizontalAlignment="Center" 
                                      VerticalAlignment="Center" 
                                      Background="#F86C4D"
                                      Margin="0,238px,0,0"
                               Height="50"
                               Width="150"
                                      Foreground="White"
                                      FontFamily="{TemplateBinding FontFamily}"
                                       />
                        </Grid>
                    </Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

我的cs:

 namespace _3_Buttons
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }     
    }
}

WPF.使用c#在按钮中添加图像和文本

我已经这样做了:xaml文件:

<Window x:Class="WpfApplication5.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Button x:Name="button1" HorizontalAlignment="Left" Margin="127,69,0,0" VerticalAlignment="Top" Width="215" Height="110"/>
    </Grid>
</Window>

xaml.cs文件
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media.Imaging;
namespace WpfApplication5
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            Image img = new Image();
            string path = System.AppDomain.CurrentDomain.BaseDirectory + "chart2 - Copy.png";
            img.Source = new BitmapImage(new Uri(path));
            StackPanel stackPnl = new StackPanel();
            stackPnl.Orientation = Orientation.Horizontal;
            stackPnl.Margin = new Thickness(10);
            stackPnl.Children.Add(img);
            button1.Content = stackPnl;
        }
    }
}