C# 打开图片并设置为背景

1、界面设计

<Window x:Class="WpfApp.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:local="clr-namespace:WpfApp"
        Icon="https://demosc.chinaz.net/Files/pic/iconsico/8254/e9.ico"
        mc:Ignorable="d"
        Title="TestImage" Height="600" Width="900" WindowStartupLocation="CenterScreen">
    <Grid x:Name="myGrid">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <Button x:Name="btn1" Grid.Column="1" Grid.Row="0" Background="Aqua" Width="60" Height="30" Click="Btn1_Click">背景图片</Button>
        <Button x:Name="btn2" Grid.Column="0" Grid.Row="0" Background="Aqua" Width="60" Height="30" Click="Btn2_Click">打开图片</Button>
        <!--<Frame Source="https://www.bilibili.com/" Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="3" Grid.RowSpan="3" Background="AntiqueWhite"></Frame>-->
    </Grid>
</Window>

2、C#代码

using System;
using System.Windows;
using System.Windows.Media;
using System.Windows.Forms;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Windows.Controls;

namespace WpfApp
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        private int num = 0;
        public MainWindow()
        {
            InitializeComponent();
        }


        private void Btn2_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog pic = new OpenFileDialog();
            pic.Title = "打开图片文件";
            pic.Filter = "图形文件(*.png;*.jpg)|*.png;*.jpg";
            pic.Multiselect = true;
            pic.DefaultExt = ".png";
            if (pic.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                Console.WriteLine(pic);
                Console.WriteLine(pic.FileNames);
                for(int i =0; i < 3; i++)
                {
                    try
                    {
                        for(int j = 0; j < 3; j++)
                        {
                            ImageBrush p = new ImageBrush();
                            p.ImageSource = new BitmapImage(new Uri(pic.FileNames[num], UriKind.Absolute));
                            Console.WriteLine((pic.FileNames[num]));
                            Rectangle r = new Rectangle();
                            Grid.SetColumn(r, j);
                            Grid.SetRow(r, i+1);
                            r.Fill = p;
                            myGrid.Children.Add(r);
                            num++;
                        }
                    }
                    catch (Exception)
                    {
                        break;
                    }
                }
            }

        }

        private void Btn1_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog c = new OpenFileDialog();
            c.Title = "背景图片";
            c.Filter = "图形文件(*.jpg)|*.jpg";
            if (c.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                ImageBrush p = new ImageBrush(new BitmapImage(new Uri(c.FileName, UriKind.Absolute)));
                myGrid.Background = p;
            }
        }
    }
}

3、演示
a.点击背景图片,设置背景

b.点击打开图片,浏览图片

posted @   槑孒  阅读(353)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示