这篇文章是我开通csdn博客的第一篇文章,希望大家多多支持!以后慢慢会有更好的文章分享给大家!谢谢大家!

先看一下运行后的一个效果图。

就是这样一个效果图。你每点击一次一个出现相同的动画,就会更新九宫格里面的图片,然后又产生下一张图片,如果点击错误,就会弹出窗口提醒失败!不多说了上代码,代码还是比较简单的。先是一个前台界面的代码,主要代码在后台实现,所以,前台还是比较简单的。

<Window x:Class="_201524jiugongge.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="MainWindow" Height="481" Width="670" Loaded="Window_Loaded"><Canvas Name="shouhu"><Border Name="xianshi" Width="670" Height="430" Background="BlueViolet" CornerRadius="40" Opacity="0.7"></Border></Canvas>
</Window>

大家可以看到Canvas里面有一个name,这个主要是在后台引用的。希望大家注意。

下面就是后台代码了,也不是特别的难,我呢注释也加的比较详细。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Media.Animation;//注意的是这里要导入动画的命令。
using System.Windows.Threading;namespace _201524jiugongge
{/// <summary>/// MainWindow.xaml 的交互逻辑/// </summary>public partial class MainWindow : Window{int[] num;Random ran = new Random();Storyboard sto = new Storyboard();Label la = new Label();Image imgleft = new Image();public MainWindow(){InitializeComponent();this.WindowStyle = System.Windows.WindowStyle.None;//去边框this.AllowsTransparency = true;//透明this.Background = Brushes.Transparent;//背景透明5this.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;//剧中this.Width = 800;//设置宽度this.Height = 800;//设置高度Create();}private void Create(){string[] name;//string数组,用来存放英雄的名字name = new string[51] { "暗裔剑魔", "九尾妖狐", "暗影之拳", "牛头酋长", "殇之木乃伊", "标双鸷鸟", "黑暗之女", "寒冰射手", "沙漠皇帝","盲僧","机器人","复仇焰魂","光辉女郎","皮城女警","魔蛇之拥","虚空恐惧","忍者神龟","诺克萨斯","皎月女神","荣耀行刑官","祖安狂人","蜘蛛女王","寡妇制造者","探险家","末日使者","无双剑姬","潮汐海陵","哨兵之殇","海盗船长","德玛西亚","机械公敌","酒桶","阎王罗","战争之神","大发明家","刀锋意志","琴瑟仙女","皇子","武器大师","小白脸","暴走萝莉","冰霜女巫","赛利亚","死亡颂唱","GSD","不祥之刃","战争之王","狂暴的心","虚空魔石","深渊巨口","诡术妖姬"};num = new int[9];//产生九个随即的图片for (int i = 0; i < num.Length; i++){num[i] = ran.Next(51);for (int j = 0; j < i; j++){if (num[i] == num[j]){i--;break;}}}//循环产生图片不重复//添加图片la.Width = 400;//添加一个Lablela.Height = 80;la.FontSize = 42;la.Foreground = Brushes.Gold;la.FontFamily = new System.Windows.Media.FontFamily("微软雅黑");//设置字体la.Content = "MY HERO";Canvas.SetLeft(la, 400);//设置标签的位置Canvas.SetTop(la, 50);for (int i = 0; i < num.Length; i++){Border b = new Border();//出创建一个Borderb.Width = 100;b.Height = 100;b.MouseEnter += new MouseEventHandler(b_MouseEnter);//添加鼠标进入离开事件b.MouseLeave += new MouseEventHandler(b_MouseLeave);Image img = new Image();//创建英雄图片img.MouseDown += new MouseButtonEventHandler(img_MouseDown);//图片的鼠标事件img.Source = new BitmapImage(new Uri("IMG/" + num[i] + ".png", UriKind.Relative));//添加图片资源Canvas.SetLeft(b, 50 + i % 3 * b.Width + (i % 3) * 5);//设置图片显示的位置Canvas.SetTop(b, 50 + i / 3 * b.Height + (i / 3) * 5);b.Child = img;//给图片添加一个Border,图片是边框的子集img.Tag = name[num[i]];//将英雄的名字添加到一股string的数组里面// img.Tag = ;// la.Content = img.Tag;shouhu.Children.Add(b);//给一个Canvans起一个nane得值,将Border资源添加到窗体里面去}//用来产生一个对比的图片int x = ran.Next(9);//随即产生九个数字imgleft.Width = 150;imgleft.Height = 150;//设置图片的高度,宽度,以及位置imgleft.Tag = name[num[x]];//将对应的英雄的名字覆给便签// imgleft.Tag = name[ran.Next(9)];imgleft.Source = new BitmapImage(new Uri("IMG/" + num[x] + ".png", UriKind.Relative));//从51张图片里面随即产生一张图片Canvas.SetLeft(imgleft, 420);Canvas.SetTop(imgleft, 140);shouhu.Children.Add(imgleft);//添加到窗体中去la.Content = imgleft.Tag;//获取英雄的名字shouhu.Children.Add(la);//将标签添加到窗体当中去DoubleAnimation da = new DoubleAnimation(0, 150, TimeSpan.FromSeconds(3));//创建单点之间动画Storyboard.SetTarget(da, imgleft);//添加到Storyboard.SetTargetProperty(da,new PropertyPath("(Height)"));//动画的风格sto.Children.Add(da);//添加到动画班里面sto.Begin();//开始动画}void img_MouseDown(object sender, MouseButtonEventArgs e){Image img = (Image)sender;if (img.Tag.ToString() == imgleft.Tag.ToString()){shouhu.Children.Clear();//每次随即是起初上一次的内容shouhu.Children.Add(xianshi);Create();}else{MessageBox.Show("失败");}}void b_MouseLeave(object sender, MouseEventArgs e){Border b = (Border)sender;b.BorderThickness = new Thickness(0);}void b_MouseEnter(object sender, MouseEventArgs e){Border b = (Border)sender;b.BorderThickness = new Thickness(3);b.BorderBrush = Brushes.Gold;}private void Window_Loaded(object sender, RoutedEventArgs e){}}
}

从代码里面可以看到,我将所有英雄的图片放在一个数组里面,由于英雄太多,所以只有51张英雄的图片,大家也可以添加!

注释也比较详细,所以就不多说了。点击打开链接代码大家可以去我的云盘去下载。图片资源也在云盘里面。到这今天的所有内容就全部完成了,希望大家支持!

C# WPF 实现英雄联盟图片 宝宝识图相关推荐

  1. 数据可视化,python英雄联盟个人能力值雷达图绘制。

    英雄联盟(简称LOL)是如今很火的一款由美国拳头游戏(Riot Games)开发的即时战略(MOBA)游戏,游戏由采用5v5组队模式进行比赛.一般以KDA,输出,发育,辅助,生存来反应一个选手各方面的 ...

  2. [WPF]WPF中材质制作——图片和矢量图之争

    如果要做下面这样的一个东西作为背景.你会如何做呢? 图1. 目标背景效果 方案一,用PS画出来.然后把这个PNG图片作为背景色.这个方案可以,但是如果想让这个线的颜色可配置呢?如何线的粗细不确定呢?无 ...

  3. 用Python获取英雄联盟所有皮肤图片

    先来看一张图片. image.png 先讲解下思路,然后直接放源码,想要获取源码的同学直接拉到最下面就好. 1.爬虫第一步 首先要分析网页的DOM结构,就是英雄联盟官网,然后在下面找到英雄资料.然后在 ...

  4. 游戏英雄联盟高清壁纸,人物角色都包括

    在如今的网络游戏中,永远不缺的就是各类土豪玩家,<英雄联盟>也不例外.除了到处炫耀 自己的英雄池外,各式各样的英雄皮肤壁纸也是他们重要的炫富资本. 想要的英雄联盟精美图片? 高图网 www ...

  5. Wayos网吧路由英雄联盟频繁掉线解决办法

    英雄联盟某些机器瞬间ping值飙升,然后一直掉线重连!研究好久,解决了,经验与大家分享 第一步,在路由器地址后加qos_ext.htm进入qos参数设置页面(如果出现不了设置界面请更新固件).比如:h ...

  6. 百度识图原理分析 推测其发展方向…

    百度识图原理分析 推测其发展方向 2010年12月13日,百度推出相似图片搜索功能-百度识图(shitu.baidu.com),常规的图片搜索,是通过输入关键词的形式搜索到互联网上相关的图片资源,而百 ...

  7. WPF实现雷达图(仿英雄联盟)

    前言 有小伙伴提出需要实现雷达图. 由于在WPF中没有现成的雷达图控件,所以我们自己实现一个. PS:有更好的方式欢迎推荐. 代码如下 一.创建 RadarChart.cs 菜单继承 Control代 ...

  8. queryselectorall 怎么取name_用这个方法,我爬取了《王者荣耀》《英雄联盟》等游戏皮肤图片...

    本文简介:本文使用Python制作爬虫,来爬取<英雄联盟><王者荣耀><神之浩劫>等游戏官方网站的英雄皮肤图片.可以作为新手爬虫的练手实战案例!! 爱打游戏的各位肯 ...

  9. 深度学习小白入门教程(一):以英雄联盟为例,爬取你感兴趣图片,构建你自己的数据集

    爬取英雄联盟英雄图片建立数据集 本教程来自DUT515斑鸠实验室 小白在练习的时候,在教程里都会有各种现成的经典的数据集作为例子当你,比如鸢尾花啊: 手写数字啊: 而当你学会了这些内容,想要跃跃欲试的 ...

最新文章

  1. 【c语言】判断是否为友好数
  2. web.xml 里context-param 、listener、 filter、servlet 加载顺序
  3. php switch换界面,php switch的“高级”用法详解
  4. 在Windows Server 2012 R2中搭建SQL Server 2012故障转移集群
  5. 笔尖已加载,但未设置“查看”出口
  6. boost::cv_status相关的测试程序
  7. linux中/usr下文件权限修改setuid导致的问题
  8. LeetCode 389. Find the Difference
  9. 【白皮书分享】2021年B2B内容营销白皮书.pdf(附下载链接)
  10. Python的一些用法分享
  11. 你可能用得上的 N 款免费/开源中文字体
  12. Selenium IDE 下载及安装
  13. linux台式机双屏幕怎么连接,台式机Linux/Unix多系统安装详细教程
  14. maccms代码审计——前台sql注入漏洞
  15. 微信公众号禁止浏览器打开
  16. 切线空间(Tangent Space)法线映射(Normal Mapping)
  17. windows版微信多开
  18. 武器瞄准镜 - MOD和相关程序讲解
  19. 华为鸿蒙推送机型,华为鸿蒙系统开始推送,这15款机型可率先升级,有你的吗?...
  20. matlab棋盘格标定角点,相机标定(Camera calibration)Matlab——棋盘格标定原理,流程...

热门文章

  1. 突发奇想之 Planning Trajectory
  2. php设计模式及耦合性和多形性
  3. 如何封禁IP和IP段 看完这篇我会了
  4. Revit2016二次开发配置
  5. php 生成抽奖码算法,抽奖概率算法实现-用PHP来实现的
  6. 10个国家队出品的冷门APP,这才称得上是宝藏产品!
  7. Linux驱动加载实例
  8. M.2接口固态硬盘安装WIN7系统
  9. provider:SQL Network Interfaces,error:26 - 定位指定的服务器/实例时出错--错误原因及解决办法
  10. OAuth 统一登录 记录