原文: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. Lucene学习总结之八:Lucene的查询语法,JavaCC及QueryParser 2014-06-25 14:25 722人阅读 评论(1) 收藏

    一.Lucene的查询语法 Lucene所支持的查询语法可见http://lucene.apache.org/java/3_0_1/queryparsersyntax.html (1) 语法关键字 + ...

  2. ios开发transform属性

    #import "ViewController.h" @interface ViewController () @property (weak, nonatomic) IBOutl ...

  3. bash - trap

    http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_12_02.html The syntax for the trap statement is s ...

  4. pycharm Zooming in the Editor

    https://www.jetbrains.com/help/pycharm/zooming-in-the-editor.html To enable changing font size in th ...

  5. PEM_密钥对生成与读取方法

    PS:欢迎转载,但请注明出处,谢谢配合. 前言: PEM是OpenSSL和许多其他SSL工具的标准格式,OpenSSL 使用PEM 文件格式存储证书和密钥.这种格式被设计用来安全的包含在ascii甚至 ...

  6. [Node.js] Build microservices in Node.js with micro

    micro is a small module that makes it easy to write high performance and asynchronous microservices ...

  7. LUA整合进MFC代码

    这几天研究了一下lua,主要关注的是lua和vc之间的整合,把代码都写好放在VC宿主程序里,然后在lua里调用宿主程序的这些代码(或者叫接口.组件,随便你怎么叫),希望能用脚本来控制主程序的行为.这实 ...

  8. 教你如何利用php.exe运行php文件

    教你如何利用php.exe运行php文件 一.总结 一句话总结:就是使用的php.exe,和java中的javac一样,都是有exe,然后有了对应命令,比如php.exe,然后就可以用php命令. 1 ...

  9. Android XMPP服务器, BOSH(Http-Binding)和WEB客户端搭建

    目标: 搭建一个XMPP服务器, 实现在web page上用javascript与自己XMPP服务器通信, 匿名登录并与任何一个XMPP(Jabber)帐户通信. (Gtalk目前尚有问题) XMPP ...

  10. 【poj3468】A Simple Problem with Integers

    Time Limit: 5000MS   Memory Limit: 131072K Total Submissions: 97008   Accepted: 30285 Case Time Limi ...