可视化程序设计基础(一)——XAML控件

作为一个刚刚接触C#和XAML的新手,首先就是要搞清楚这二者之间的关系。XAML的中文名称为可扩展应用程序标记语言,而C#则是运行于.NET Framework之上的高级程序设计语言,可以理解为使用XAML制作UWP的用户使用界面,而使用C#来完成内部的逻辑实现。

简单类比QT应该就是.ui文件和.cpp文件区别。可视化程序设计我只接触过QT,对于网站设计并不了解,所以对于XAML这种类似于HTML的标记语言不熟,还需要加紧学习。

在看完大部分XAML控件后,和我之前接触的QT进行对比,我发现大部分的特性都很类似,比如说在设计时界面与内部实现分开,所见即所得等。但对于XAML我发现了很多有趣的地方。



首先就是最令我感到奇怪的一点,就是我没有找到UWP在电脑端对鼠标图标的改变,例如在QT中,我们可以通过设置这样一个属性

来使得鼠标在移向该按钮后变为手指标识,但在UWP中我没有看到按钮有这样的属性,在我使用的网易云音乐中鼠标也没有变化,一直是处于箭头状态,所以很多时候都不清楚一些按钮能否点击。我猜测是因为其跨平台的特性,在移动端以及穿戴式设备上不需要这方面的功能。但我觉得对于已经养成习惯的计算机用户来说,是有些不习惯的。



其次就是MediaElement & MediaPlayerElement这两个控件,看介绍是说一个旧一个新,但MediaPlayerElement有什么新的特性我并没有找到,也并不清楚是从头实现了一个新类还是只是将原来的MediaElement改了名字,不过相信微软这么做一定是有一些道理的。

但这个控件本身功能是非常强大的,播放器的基本操作都包含了进去,在QT中如果实现一个差不多功能的控件需要的代码量会很大,而在UWP中仅仅需要一行代码就可以新建一个播放器。这一点是其他可视化编程平台做不到的,但这也引起了一些问题,比如说在QT中我可以定制出一个和其他所有人都不同的个性播放器,而UWP中不知道是否有方法将MediaPlayerElement进行修改,在接下来的学习中我会仔细考虑这个事情。



对于ParallaxView,我第一感觉就是炫酷,相当于直接将图片设置为按钮的背景,同时在用户下滑时还会自动显示图片剩余部分,整个界面瞬间变得高大上了起来,如果有好看的界面相信很多人会摒弃原来单调的背景。



然后是pivot这个东西,这个东西很类似QT中存放控件的QStackedLayout,可以存放很多其他控件,根据用户的需求显示不同的界面。原来我认为这个是必须显示title的

然而在亲自实现后才发现如果不设置title和header时,默认是和QStackedLayout一样没有任何显示的。



最后是XAML的一些全新的控件:

RatingControl:

这个控件感觉就是官方钦定了一种给软件或产品打分的方式,为程序员节省了自己编写打分程序的时间,并且比使用数字框更加直观。相信在程序员自己定义打分的图形后,比如说把新型换成笑脸等等会使打分功能更加个性化。

RepeatButton:

看起来和普通按钮类似,但点击鼠标后只要不松开就一直会触发某种事件,和QT中重写了MouseRelease的Button很像。不过有一点不同的是当鼠标按住并拖动到按钮外时,计数就会停止,这意味着这个按钮不仅监控鼠标按下松开事件,并且还监控了鼠标的位置。

InkCanvas:

一个功能十分简单,代码也十分简单的内置画图工具,对于一些需要手写文字或简单画图的场合十分适用。但因为功能太简单,暂时也不清楚拓展性如何,所以对于windows自带的画图工具来说还是有些差距。



以上是我比较感兴趣的控件,感觉UWP整体上非常适合在PC端编写windows应用,并且听说UWP的程序可以直接在其他平台上如windows phone等直接运行,不必过多考虑兼容性的问题,相信这也是C#语言崛起的一大原因吧。

原文地址:https://www.cnblogs.com/cui-jia-hua-blog/p/8598204.html

时间: 2024-10-11 03:54:07

可视化程序设计基础(一)——XAML控件的相关文章

WPF后台设置xaml控件的样式System.Windows.Style

WPF后台设置xaml控件的样式System.Windows.Style 摘-自 :感谢 作者: IT小兵   http://3w.suchso.com/projecteac-tual/wpf-zhishi-houtai-shezhi-style.html Style myStyle = (Style)this.FindResource("TabItemStyle");//TabItemStyle 这个样式是引用的资源文件中的样式名称 静态资源在第一次编译后即确定其对象或值,之后不能对

可视化webpart基础开发——TreeView控件读取文档库中的所有文件夹和文件(递归方法读取)

可视化webpart基础开发——TreeView控件读取文档库中的所有文件夹和文件(递归方法读取) 分类: SharePoint2011-12-23 14:44 1584人阅读 评论(0) 收藏 举报 文档sharepointurl测试stringforms 可视化webpart基础开发——TreeView控件读取文档库中的所有文件夹和文件(递归方法读取) 1.在部署的sharepoint网站中新建一个名为“测试文档库”的文档库,并添加各级的子文件夹和子文件,用于测试 2.在VS2010中新建空

浅谈XAML控件

在win10系统内简单使用了XAML控件,由于本人英语水平有限,在自己的摸索使用.分析代码以及翻译软件.搜索引擎.室友情的帮助下了解了控件的相关功能,下面简要对XAML控件提出几点建议: 1.CalendarView:GregorianCalendar是一个计算函数,是 Calendar 的一个具体子类,提供了世界上大多数国家/地区使用的标准日历系统.是一种混合日历.但是这个日历里Calenderldentifier选项栏里点击所有的阴历日历都会导致软件崩溃推出而且当你切换至其他国家再切换回来的

自行学习XAML控件后的简单想法(作业一)

由于自身专业水平的欠佳,我对于XAML控件的学习并不深刻,只在简单了解过后产生了一二想法,也许十分荒谬,就减省地谈谈.以下五种控件,是我在学习后,并不十分看好或有所疑虑的. Canves 在浏览XAML Controls Gallery上各种控件的简单介绍时,这个控件引起我注意,它通过坐标轴控制每个内容的分布,是一个用于布局的控件. 首先,这个Canvas控件的展示样例图,让我想起了很多应用中的画面,例如:                              然而在我查询相关资料后,我发现

【转】VS2013 C#WinForm程序构造界面拖动控件NumericUpDown时"未响应“是有道词典惹的祸

很久之前遇到过因为金山词霸和其他软件冲突导致的程序无响应的情况. 没想到今天情况重现,VS2013在可视化编辑NumbericUpDown控件的时候,又出现了”未响应“,发现又是有道词典惹的祸. 可见屏幕取词功能还是应该好好研究的,希望微软和有道之间能协调解决一下!!! 转自:http://blog.csdn.net/smstong/article/details/21018529

如何在MFC对话框应用程序中使用ColorPicker控件

在日常的应用程序开发中,当涉及到曲线绘制时,为了将多条不同类型的曲线区分开,常常需要将它们指定不同的颜色.今天在这里简单的记录一下,如何实现及使用ColorPicker控件.程序用到4个文件依次为:ColourPicker.cpp.ColourPicker.h.ColourPopup.cpp.ColourPopup.h.应用程序的执行效果如下图所示: 本实现过程通过在Button按钮中进行重绘.基于Visual Studio 2008的工程下载地址:位置一.位置二.

对几个Xaml控件的一些看法

CalendarDatePicker 这个控件在风格上没有什么问题, 大多数的web应用上的date input控件也是这样的,但是对中文的的支持基本上没有,而且对星期是用的英文缩写,实际上对于中国用户来说这样并不用户友好,我们开发一个软件主要还是面向中国用户,所以应该尽可能的让控件符合中国用户的使用习惯. CalendarView 对于日期显示的控件来说,没有一个分明的界限将每个月的日期分隔开,这样看起来真的很糟心,我习惯的日期显示应该是,我觉得大多数人都应该是习惯这样风格的日期显示吧(虽然这

Winform程序Chrome内核 WebBrowser 控件

准备工作 Chrome浏览器的内核不叫Chrome,而是Webkit,因此,我们只要找到Webkit的项目就好了. 1.下载WebKit的项目bin,网址如下: https://sourceforge.net/projects/webkitdotnet/files/WebKit%20.NET%200.x/0.5/WebKit.NET-0.5-bin-cairo.zip/download. 2.将bin文件夹下的所有(没错!是所有文件复制),并粘贴到项目文件夹下,目标目录是:项目名/bin/Deb

C# WinForm程序中使用Unity3D控件 (转)

https://www.cnblogs.com/cnxkey/articles/5394378.html 最近在自学Unity3D,打算使用这个时髦.流行.强大的游戏引擎开发一个三维业务展示系统,不过发现游戏的UI和业务系统的UI还是有一定的差别,很多的用户还是比较习惯WinForm或者WPF中的UI形式,于是在网上搜了一下WinForm和Unity3D如何集成,结果不是非常令人满意,绝大多数的回答是“No Way”,也有人给出了使用WebBrowser控件的形式,说实话这种还算是比较靠谱的,以