WPF学习之深入浅出话模板_"<rectangle stroke=\"yellow\" fill=\"orange\" widt-程序员宅基地

技术标签: WPF桌面程序开发  

图形用户界面应用程序较之控制台界面应用程序最大的好处就是界面友好、数据显示直观。CUI程序中数据只能以文本的形式线性显示,GUI程序则允许数据以文本、列表、图形等多种形式立体显示。

用户体验在GUI程序设计中起着举足轻重的作用-----用户界面设计成什么样看上去才足够的漂亮?控件如何安排才简单易用并且少犯错误?这些都是设计师需要考虑的问题。WPF系统不但支持传统的Winfrom编程的用户界面和用户体验设计,更支持使用专门的设计工具Blend进行专业设计,同时还推出了以模板为核心的新一代设计理念。

1.1     模板的内涵

从字面上看,模板就是“具有一定规格的样板”,有了它,就可以依照它制造很多一样是实例。我们常把看起来一样的东西称为“一个模子里面刻出来的。”就是这个道理。然而,WPF中的模板的内涵远比这个深刻。

Binding和基于Binding数据驱动UI是WPF的核心部分,WPF最精彩的部分是什么呢?依我看,既不是美轮美奂的3D图形,也不是炫目多彩的动画,而是默默无闻的模板(Template)。实际上,就连2D/3D绘图也常常是为它锦上添花。

Templdate究竟有什么能力能够使得它在WPF体系中获此殊荣呢?这还要从哲学谈起,“形而上者谓之道,形而下者谓之器”,这句话出自《易经》,大意是我们能够观察到的世间万物形象之上的抽象的结果就是思维,而形象之下掩盖的就是其本质。显然,古人已经注意到“形”是连接本质和思维的枢纽,让我们把这句话引入计算机世界。

  • “形而上者谓之道”指的就是基于现实世界对万物进行抽象封装,理顺它们之间的关系,这个“道”不就是面向对象思想吗!如果再把面向对象进一步提升、总结出最优的对象组合关系,“道”就上升为设计模式思
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/fwj380891124/article/details/8161024

智能推荐

Linux下用命令行编译运行Java总结_用linux编译java文件感悟-程序员宅基地

文章浏览阅读3w次,点赞26次,收藏106次。最近使用腾讯云的Cloud Studio写Java,只能使用命令行进行编译运行,趁此机会,学习一下Linux的一些常用命令。平时windows下IDE用习惯了,现在用命令行进行编译运行,发现其实问题还是挺多的,所以写下这篇文章。1.javac命令行javac用于编译java源文件,生成.class文件。形式如下javac [option] source常用的option..._用linux编译java文件感悟

获得程序的句柄_如何取得程序句柄-程序员宅基地

文章浏览阅读703次。DWORD aProcesses[1024], dwSize, dwSize2; char szProcessName[MAX_PATH] = "unknown"; char MyProcessName[MAX_PATH] = "Test.exe";//用实际文件名代替 unsigned int i; if _如何取得程序句柄

Vue循环指令v-for_<li v-for="book in books">-程序员宅基地

文章浏览阅读566次。基本用法当需要将一个数组遍历,或者将对象循环显示时,就会用到列表渲染指令v-for。它的表达式需结合in来使用,类似item in items的形式,看下面的示例:&amp;lt;div&amp;gt; &amp;lt;ul&amp;gt; &amp;lt;li v-for=&quot;book in books&quot;&amp;gt;{{book.name}}&amp;lt;/li&amp;_

【java开发者工具】IDEA(java编程语言开发的集成环境)带你了解背后故事与基础操作指南_idea支持java框架和库的开发吗-程序员宅基地

文章浏览阅读4.7k次,点赞149次,收藏139次。​IDEA 全称 IntelliJ IDEA,是java编程语言的集成开发环境。IntelliJ在业界被公认为最好的Java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版还支持HTML,CSS,PHP,MySQL,Python等。_idea支持java框架和库的开发吗

Python代码复现Active Learning for Parzen Window Classifier_activelearning库python-程序员宅基地

文章浏览阅读196次。[1] O. Chapelle, "Active Learning for Parzen Window Classifier", Proceedings of the Tenth International Workshop Artificial Intelligence and Statistics, 2005._activelearning库python

CSP202006-1-程序员宅基地

文章浏览阅读68次。试题名称:线性分类器时间限制:1.0s内存限制:512.0MB问题描述: C++#include<iostream>using namespace std;class Point{ public: int x; int y; char type;};int main(){ int n, m; cin >> n >> m; Point typeA[1005

随便推点

Github Actions 使用Docker部署SpringBoot_docker/setup-qemu-action@v3-程序员宅基地

文章浏览阅读372次。Github Actions 使用Docker部署SpringBoot_docker/setup-qemu-action@v3

YOLOV5-seg中json转txt及划分数据集_seg_json-程序员宅基地

文章浏览阅读1.5k次,点赞4次,收藏26次。yolov5-seg自制数据集的划分_seg_json

C#/.NET 多线程任务Task的详解——应用实例_.net task-程序员宅基地

文章浏览阅读9.9k次,点赞2次,收藏32次。Task类介绍:Task 类的表示单个操作不返回一个值,通常以异步方式执行。 Task 对象是一个的中心思想 基于任务的异步模式 首次引入.NET Framework 4 中。 因为由执行工作 Task 对象通常以异步方式执行在线程池线程上而不是以同步方式在主应用程序线程,可以使用 Status 属性,以及 IsCanceled, ,IsCompleted, ,和 IsFaulted 属性,以确..._.net task

css响应式网页设计:自适应屏幕宽度、移动页面开发技巧_响应式 自适应大小 css-程序员宅基地

文章浏览阅读1.4w次,点赞7次,收藏56次。html响应式网页设计:自动适应屏幕宽度背景移动设备正超过桌面设备,成为访问互联网的最常见终端。于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页?手机的屏幕比较小,宽度通常在600像素以下;PC的屏幕宽度,一般都在1000像素以上(目前主流宽度是1366×768),有的还达到了2000像素。同样的内容,要在大小迥异的屏幕上,都呈现出满意的效果,并不是一件容易的事。..._响应式 自适应大小 css

Pandas基础操作2——DataFrame的基础操作_data=nr-程序员宅基地

文章浏览阅读257次。紧接着上一篇博客,创建了Series跟DataFrame今天学习DataFrame的行列添加和删除操作,以及append和切片操作下面看代码:import numpy as npimport pandas as pdfrom pandas import Series, DataFrame# Seriess = Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])print(s)# >>># a 1# b _data=nr

mysql 高可用架构 mha 之四 Error happened on checking configurations_mastermonitor.pm, ln427] error happened on checkin-程序员宅基地

文章浏览阅读3.9k次。os: ubuntu 16.04db: mysql 5.7.25mha: 0.58使用 masterha_check_repl 时一直报错Fri Mar 8 11:31:30 2019 - [error][/usr/share/perl5/MHA/MasterMonitor.pm, ln427] Error happened on checking configurations. Red..._mastermonitor.pm, ln427] error happened on checking configurations