WPF制作《三国志幻想大陆》的武将浏览列表

news/2024/11/30 0:34:27/

利用WPF制作游戏《三国志幻想大陆》的武将浏览列表,思路参考https://github.com/BYJRK/GenshinCharacterBrowser

源码见githubgithub
在这里插入图片描述

主要代码实现

动画部分

武将名称进入动画

定义

<Storyboard x:Key="roleNameIn"><DoubleAnimationStoryboard.TargetName="roleName"Storyboard.TargetProperty="RenderTransform.(TranslateTransform.X)"From="-300"To="0"Duration="0:0:0.35"><DoubleAnimation.EasingFunction><CubicEase EasingMode="EaseInOut" /></DoubleAnimation.EasingFunction></DoubleAnimation><DoubleAnimationStoryboard.TargetName="roleName"Storyboard.TargetProperty="Opacity"From="0"To="1"Duration="0:0:0.35" /></Storyboard>

武将图片进入动画

<Storyboard x:Key="protraitIn"><DoubleAnimationStoryboard.TargetName="protraitPic"Storyboard.TargetProperty="RenderTransform.(TranslateTransform.X)"From="400"To="100"Duration="0:0:0.35"><DoubleAnimation.EasingFunction><CubicEase EasingMode="EaseInOut" /></DoubleAnimation.EasingFunction></DoubleAnimation><DoubleAnimationStoryboard.TargetName="protraitPic"Storyboard.TargetProperty="Opacity"From="0"To="1"Duration="0:0:0.35" />
</Storyboard>

调用

  <!--  选中角色立绘事件  --><i:EventTrigger EventName="SelectionChanged"><i:InvokeCommandAction Command="{Binding DataContext.SelectProtraitCommand, RelativeSource={RelativeSource AncestorType=ListBox, AncestorLevel=2}}" CommandParameter="{Binding SelectedItem, ElementName=charListBox}" /><!--  启动在Resources定义的动画  --><i:ControlStoryboardAction ControlStoryboardOption="Play" Storyboard="{StaticResource protraitIn}" /><i:ControlStoryboardAction ControlStoryboardOption="Play" Storyboard="{StaticResource roleNameIn}" /></i:EventTrigger>

角色头像未选中灰色显示

Converter部分

public class ImageToGrayImage : IValueConverter
{public object Convert(object value,Type targetType,object parameter,System.Globalization.CultureInfo culture){BitmapImage image = value as BitmapImage;if (image != null){FormatConvertedBitmap grayBitmapSource = new FormatConvertedBitmap();grayBitmapSource.BeginInit();grayBitmapSource.Source = image;grayBitmapSource.DestinationFormat = PixelFormats.Gray8;grayBitmapSource.EndInit();return grayBitmapSource;}return value;}public object ConvertBack(object value,Type targetType,object parameter,System.Globalization.CultureInfo culture){throw new NotImplementedException();}
}

使用

 <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=ListBoxItem}, Path=IsSelected}" Value="False"><Setter TargetName="roleIcon" Property="Source" Value="{Binding Icon, Converter={StaticResource convGrayImage}}" /></DataTrigger>

爬虫部分

这部分都是发请求和json解析,具体看源码


http://www.ppmy.cn/news/888656.html

相关文章

删除word中突然出现的灰色中括号

删除word中突然出现的灰色中括号 在使用word中偶尔出现莫名其妙出来的中括号&#xff0c;也没办法删除。 就像这种一样 选择word菜单栏中的插入&#xff0c;选择书签&#xff08;或者直接在帮助中搜索书签&#xff09; 然后将所有的书签都删除&#xff0c;则文档中的所有灰色…

Android TvSettings Bug: 密码框无法点击唤起输入法

概述 Android 10 的Box方案&#xff0c; 默认使用的是TvSettings作为系统设置&#xff0c;输入操作的习惯上是使用鼠标&#xff0c;键盘&#xff0c;遥控&#xff0c;日常的场景是没有问题&#xff0c;也不会出现本文中提及的问题。当外接的USB触摸屏后&#xff0c;出现无法点击…

C#开发的OpenRA游戏之变卖按钮

前面已经分析右边创建窗口的功能,当玩家建造了很多物品,由于某种原因,需要把建造的物品进行变卖掉,需要回收一些金币,以便建造更多攻击的力量。 从上图可以看到在顶端有四个按钮,第一个金钱的符号,就是变卖物品的按钮;第二个是维修的按钮;第三个是放置信号标记,以便盟…

傅里叶变换分析A股大盘周期

参考 import tushare as ts import numpy as np import matplotlib.pyplot as plt import pandas as pd import requests from jqdatasdk import * import librosa as rosa import librosa.display from IPython.display import Audio from matplotlib.font_manager import Fo…

Codeforces Round #556 (Div. 2) A B C

传送门 A 题意&#xff1a;给你早上买入和晚上卖出股票价格&#xff08;股票数量无限&#xff09;以及你所拥有多少钱&#xff0c;问一晚后你最多能够拥有多少钱 #include "bits/stdc.h" #define ll long long using namespace std; int main() {int a[1100],b[11…

Codeforces Round #556 (Div. 2) A题

题面很简单&#xff0c;思路就是简单贪心&#xff0c;si数组是贮存购买数组&#xff0c;bi数组是贮存出售数组&#xff0c;题面是给你r的货币&#xff0c;让你通过出售和购买来获取最大价值&#xff0c;第一种算法是通过找出bi数组最大值&#xff0c;和si数组最小值&#xff0c…

获取股票交易数据的Tushare的使用方法

以前不知道怎么从网上直接获取数据,都是从交易软件上下载数据,也只有个别的软件才能下载,例如通达信可以导出数据,现在学到了一种新的方法,利用tushare可以获取金融数据,这里就简单的分享一下股票数据的获取方法。 Tushare是一个免费、开源的python财经数据接口包。…

python 获取股票的交易数据

环境&#xff1a;centos6.5 ;python2.7;pandas0.16.2 目标&#xff1a;使用python 获取国内外股票数据 通过pandas内置的Yahoo 金融接口&#xff0c;直接获取股票的数据&#xff1a; 1、获取苹果20141/1至2015/8/20的股票数据 In [27]: import pandas.io.data as web In [28…