原文:WPF编游戏系列 之八 银行界面及金额校验

       在前面《WPF编游戏系列 之四 用户控件》一文中通过用户控件创建了“My Shop”中物品列表框。本篇继续使用用户控件创建银行界面,并在用户进行存钱操作时对其输入金额的有效性进行校验。

1. 在创建好控件BankElement.xaml后,将XAML代码填入其中:

<Grid>
<Border BorderThickness="3" CornerRadius="5"
Background="#CEE4E5" BorderBrush="#0C7D42">
<StackPanel Orientation="Vertical" Margin="5"
HorizontalAlignment="Center">
<Image Height="80" Width="80" Margin="5"
Source="{Binding BankImage}"></Image>
<TextBlock Name="bankCash" Margin="5"
Text="{Binding BankCash}"></TextBlock>
<TextBlock Name="bankInterest" Margin="5"
Text="{Binding BankInterest}"></TextBlock>
<TextBlock Name="transferInfo" Margin="5"></TextBlock>
<StackPanel Orientation="Horizontal">
<TextBox Name="cashTransfer" Margin="5" Width="100"></TextBox>
<Image Name="transImage" Source="image/trans.png"
Cursor="Hand" Width="20" Height="20"></Image>
</StackPanel>
</StackPanel>
</Border>
</Grid>

样式及效果图如下:

2. 当用户在TextBox中输入金额后,首先需要对该数据进行两方面校验:a. 录入金额是否为数字,b. 录入金额是否超出当前总金额,之后再对相应结果进行处理。

private void saveCashImage_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
Image transferImage = sender as Image;
//查找输入金额的TextBox
object findCashTextBox = queryGrid.FindName("saveCash");
TextBox saveCashInput = findCashTextBox as TextBox;
//查找反馈结果的TextBlock
object findCashTextBlock = queryGrid.FindName("saveCashInfo");
TextBlock saveCashInfo = findCashTextBlock as TextBlock;
//当前总金额($750)
int remainAmount = Convert.ToInt32(transferImage.Tag.ToString());
//存入金额
int transAmount;
//判断saveCashInput是否为数字,否则transAmout为0
int.TryParse(saveCashInput.Text, out transAmount);
//如果transAmout为0,则说明输入的数据有误,当然也包括本身输入的就是0
if (transAmount == 0)
{
saveCashInfo.Text = "Not vaild number";
}
else
{
//如果超出当前总金额…
if (transAmount > remainAmount)
{
saveCashInfo.Text = "No enough cash";
}
else
{
//可以将Money存入银行了
}
}
}

3. 错误提示效果图:

              

待续 … …

WPF编游戏系列 之八 银行界面及金额校验的更多相关文章

  1. WPF编游戏系列 之九 物品清单再优化

    原文:WPF编游戏系列 之九 物品清单再优化        在"第三篇"和"第四篇"中通过用户控件和数据绑定功能对物品清单进行一些优化减少了部分C#代码,但感觉 ...

  2. WPF编游戏系列 之七 动画效果(2)

    原文:WPF编游戏系列 之七 动画效果(2)        上一篇已经对关闭窗口图标进行了动画效果处理,本篇将对窗口界面的显示和关闭效果进行处理.由于所有的动画效果都是针对窗口界面的Canvas,所以 ...

  3. WPF编游戏系列 之六 动画效果(1)

    原文:WPF编游戏系列 之六 动画效果(1)        本篇主要针对界面进行动画效果处理.首先在打开或关闭界面时,使其产生动态效果而不是生硬的显示或消失(如下图).其次在鼠标放到关闭窗口图标上时, ...

  4. WPF编游戏系列 之三 物品清单

    原文:WPF编游戏系列 之三 物品清单        本篇将介绍如何通过C#自动生成游戏界面,主要演示点击"My Shop"后如何显示所有物品清单.其中数据源来自于Access 2 ...

  5. WPF编游戏系列 之五 数据绑定

    原文:WPF编游戏系列 之五 数据绑定        在上一篇通过用户控件将重复使用的控件封装为一个控件组,大大减少了C#代码数量,本篇继续对该控件组进行数据绑定,节省为每个控件赋值的工作.对于数据绑 ...

  6. WPF编游戏系列 之四 用户控件

    原文:WPF编游戏系列 之四 用户控件        在上一篇<WPF编游戏系列 之三 物品清单>中,对物品清单进行了演示,其中反复用到了同一组控件(如下图),而且 颜昌钢也指出在3.2. ...

  7. WPF编游戏系列 之一 布局设计

    原文:WPF编游戏系列 之一 布局设计        本系列主要使用WPF和C#编写一个简单的小游戏(暂命名XMarket),意在通过该实例进一步学习和体验WPF,也欢迎广大同仁拍砖交流.言归正传,在 ...

  8. WPF编游戏系列 之二 图标效果

    原文:WPF编游戏系列 之二 图标效果        本篇将要实现图标的两个效果:1. 显示图标标签,2. 图标模糊效果.在上一篇中提到Image没有HTML <img>的Title属性( ...

  9. WPF入门教程系列二十三——DataGrid示例(三)

    DataGrid的选择模式 默认情况下,DataGrid 的选择模式为“全行选择”,并且可以同时选择多行(如下图所示),我们可以通过SelectionMode 和SelectionUnit 属性来修改 ...

随机推荐

  1. 【27.77%】【BZOJ 4066】简单题

    Time Limit: 50 Sec  Memory Limit: 20 MB Submit: 1919  Solved: 533 [Submit][Status][Discuss] Descript ...

  2. 【心情】codeforces涨分啦!

    虽然只有10分. 第二次比赛!

  3. 关于pptpd log日志文件的配置

    如何开启pptpd默认日志记录功能. 修改/etc/ppp/options.pptpd中的nologfd,默认没有开,把nologfd注释掉,然后添加 logfile /var/log/pptpd.l ...

  4. 使用PowerDesigner15在win7下的系统MySQL p相反roject(一)

    使用PowerDesigner15在win7下的系统MySQL 相反project 1.首先.安装下面的驱动 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv ...

  5. 【U014】热浪(前向星存储方法)

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] 德克萨斯纯朴的民眾们这个夏天正在遭受巨大的热浪!!!他们的德克萨斯长角牛吃起来不错,可是他们并不是很擅 ...

  6. [GeekBand ] 利用 pass by reference -to -const 编写高效规范的 c++代码

    本文参考资料 :  GeekBand 侯捷老师,学习笔记 Effective C ++ 侯捷译 条款20 开发环境采用:VS2013版本 首先:分析值传递的缺点 (一) class Person{ p ...

  7. hadoop 3.x 单机集群配置/启动时的问题处理

    一.修改配置文件(hadoop目录/etc/hadoop/配置文件) 1.修改hadoop-env.sh,指定JAVA_HOME 修改完毕后 2.修改core-site.xml <configu ...

  8. padding百分百值是相对谁的百分比

    先看代码 <head> <meta charset="UTF-8"> <title>Document</title> <sty ...

  9. Android——四大组件、六大布局、五大存储

    一.android四大组件 (一)android四大组件详解 Android四大组件分别为activity.service.content provider.broadcast receiver. 1 ...

  10. gdal库中设置prj4库全路径的用法

    作者:朱金灿 来源:http://blog.csdn.net/clever101 gdal库实现投影转换之类的功能实际上底层都是调用prj4库的功能.如果gdal使用非静态的方式集成prj4库,实际上 ...