论文部分内容阅读
摘 要:文章阐述了如何实现希腊字母在Blend 4文本框中的显示,以及文本框的插入操作与光标控制,对交互式填空题答题卡的制作进行了初步的探索。
关键词:Expression Blend 4;数学填空题
中图分类号:TP391 文献标识码:B 文章编号:1673-8454(2012)02-0062-02
人机交互便于构建理想的学习环境,可以实现学习的导向、监督、激励、诊断等功能,它为教学、学习更具自主性提供了强有力的技术支持。
为了让学生全面掌握象限角及轴线角的弧度制表示,笔者试图用Expression Blend 4制作交互式填空题。开始时,看似简单的问题,却难以下手。
1.学生填空时,如何输入键盘上没有的α、π、ε等符号
参考几何画板中的计算器,也设计一个类计算器的面板,把用户输入过程中可能用到的符号,都放在该面板上。
面板由Button来实现,一个符号一个Button。设置Button的Content(文本)属性时,首先在Word中插入符号,再拷贝到Button的Content处。结果,不论是α还是π,拷贝过来后,都变成方框“□”,无法识别。
Word中插入符号时,α、π、ε来源于Symbol字体,于是,将Button的字体设置成Symbol,“□”变成了相应的符号。
用文本框TextBox接收用户的输入,并将TextBox的字体也设置为Symbol,试用语句:
textbox1.Text = textbox1.Text button1.Content.ToString();
面板上的符号可以输入到TextBox中去了,然而,符号都只能加入到TextBox的原有文本后面,不能插入其中。
2.点击面板Button时,如何实现将符号插入到光标处
在几何画板中通过符号面板输入希腊字母时,点击一个字符,相应字符就会插入到光标位置,然后,光标自动后移。笔者在设计过程中,鼠标点击Button时,光标离开了TextBox,因此,应该考虑插入操作与光标控制。
网上关于TextBox的文章并不多,但针对Blend 4新增的RichTextBox文章不少,试用RichTextBox代替TextBox:
Run run01 = new Run(); //定义文本对象
run01.Text = button1.Content.ToString();
//获取Button的文本
richTextBox1.Selection.Insert(run01);
//光标处插入文本
richTextBox1.Focus();
//获取焦点,即光标自动后移
插入操作与光标控制在RichTextBox中顺利实现,但是,RichTextBox并没有一个文本属性,为了获取RichTextBox的文本,要用下列三个语句:
richTextBox1.Focus();
richTextBox1.SelectAll(); //全选
String str01 = richTextBox1.Selection.Text;
//获得选取内容的文本部分
得到输入文本后,再与参考答案比较,却事与愿违:看起来一样,比较结果却不一定相同。究其原因,RichTextBox叫做富文本域控件,里面不仅可以插入文本,还可以插入图片、超链接等。其中的文本,可以设置字体、字型号,可以进行段落控制,不是纯粹文本。
参照上面的语句,笔者继续遍游Internet,结合操作实践,终于找到了答案:
String insertStr = button1.Content.ToString( );
//获取按键文本
Int index1 = textbox1.SelectionStart;
//获取插入点
textbox1.Text = textbox1.Text.Insert(index1, insertStr); //插入符号
textbox1.Focus(); //获取焦点
textbox1.SelectionStart = index1 1;
//重新定位插入点
用户输入答案后提交,就可将输入文本与参考答案比较,马上给出正确与否的判断。最终设计效果如图1所示。
结束语
由于TextBox的字体为Symbol,在TextBox中直接键入字母a时,得到的是α;键入字母P时,得到的就是π。经过进一步探索得知,如果TextBox中既要输入α,又要输入a,只需将TextBox的字体设为Times New Roman即可。
如何输入及识别数学中的上下标、分数及根式等问题,也值得探讨。
(编辑:鲁利瑞)
关键词:Expression Blend 4;数学填空题
中图分类号:TP391 文献标识码:B 文章编号:1673-8454(2012)02-0062-02
人机交互便于构建理想的学习环境,可以实现学习的导向、监督、激励、诊断等功能,它为教学、学习更具自主性提供了强有力的技术支持。
为了让学生全面掌握象限角及轴线角的弧度制表示,笔者试图用Expression Blend 4制作交互式填空题。开始时,看似简单的问题,却难以下手。
1.学生填空时,如何输入键盘上没有的α、π、ε等符号
参考几何画板中的计算器,也设计一个类计算器的面板,把用户输入过程中可能用到的符号,都放在该面板上。
面板由Button来实现,一个符号一个Button。设置Button的Content(文本)属性时,首先在Word中插入符号,再拷贝到Button的Content处。结果,不论是α还是π,拷贝过来后,都变成方框“□”,无法识别。
Word中插入符号时,α、π、ε来源于Symbol字体,于是,将Button的字体设置成Symbol,“□”变成了相应的符号。
用文本框TextBox接收用户的输入,并将TextBox的字体也设置为Symbol,试用语句:
textbox1.Text = textbox1.Text button1.Content.ToString();
面板上的符号可以输入到TextBox中去了,然而,符号都只能加入到TextBox的原有文本后面,不能插入其中。
2.点击面板Button时,如何实现将符号插入到光标处
在几何画板中通过符号面板输入希腊字母时,点击一个字符,相应字符就会插入到光标位置,然后,光标自动后移。笔者在设计过程中,鼠标点击Button时,光标离开了TextBox,因此,应该考虑插入操作与光标控制。
网上关于TextBox的文章并不多,但针对Blend 4新增的RichTextBox文章不少,试用RichTextBox代替TextBox:
Run run01 = new Run(); //定义文本对象
run01.Text = button1.Content.ToString();
//获取Button的文本
richTextBox1.Selection.Insert(run01);
//光标处插入文本
richTextBox1.Focus();
//获取焦点,即光标自动后移
插入操作与光标控制在RichTextBox中顺利实现,但是,RichTextBox并没有一个文本属性,为了获取RichTextBox的文本,要用下列三个语句:
richTextBox1.Focus();
richTextBox1.SelectAll(); //全选
String str01 = richTextBox1.Selection.Text;
//获得选取内容的文本部分
得到输入文本后,再与参考答案比较,却事与愿违:看起来一样,比较结果却不一定相同。究其原因,RichTextBox叫做富文本域控件,里面不仅可以插入文本,还可以插入图片、超链接等。其中的文本,可以设置字体、字型号,可以进行段落控制,不是纯粹文本。
参照上面的语句,笔者继续遍游Internet,结合操作实践,终于找到了答案:
String insertStr = button1.Content.ToString( );
//获取按键文本
Int index1 = textbox1.SelectionStart;
//获取插入点
textbox1.Text = textbox1.Text.Insert(index1, insertStr); //插入符号
textbox1.Focus(); //获取焦点
textbox1.SelectionStart = index1 1;
//重新定位插入点
用户输入答案后提交,就可将输入文本与参考答案比较,马上给出正确与否的判断。最终设计效果如图1所示。
结束语
由于TextBox的字体为Symbol,在TextBox中直接键入字母a时,得到的是α;键入字母P时,得到的就是π。经过进一步探索得知,如果TextBox中既要输入α,又要输入a,只需将TextBox的字体设为Times New Roman即可。
如何输入及识别数学中的上下标、分数及根式等问题,也值得探讨。
(编辑:鲁利瑞)