当前位置: 首页 > >

关于WPF你应该知道的2000件事

发布时间:

原文 关于WPF你应该知道的2000件事


以下列出了迄今为止为WPF博客所知的2,000件事所创建的所有帖子。

帖子总数= 1,201

动画


#7 - 基于属性的动画#686 - 使用动画制作图像脉冲#777 - 动画变换#778 - 动画缩放变换#779 - 动画旋转变换#1,164 - 使用动画弹回控件

基本


#1 - 什么是WPF?#2 - 渲染层#5 - 矢量图形和分辨率独立#6 - WPF布局#9 - 样式#10 - 控制模板#11 - 命令#12 - 标记和代码背后#13 - 标记的好处#14 - 基于页面的导航#15 - WPF与Silverlight和ASP.NET#16 - 使用Direct3D进行硬核3D应用#17 - WPF发布历史#18 - Silverlight和WPF的差异#19 - System.Windows命名空间#20 - 独立和浏览器托管的应用程序#23 - WPF单位#26 - WPF架构#30 - 视觉类#31 - UIElement Class#32 - FrameworkElement#33 - 控制类#36 - 五种WPF应用程序#38 - 应用程序类#39 - 窗口类#40 - 应用程序生命周期#41 - 启动和关闭时的窗口事件#42 - WPF应用程序入口点#43 - WPF Main()函数发生了什么#44 - 申请是单身人士#45 - 创建WPF控件的两种方法#46 - 处理WPF应用程序中的命令行参数#47 - Windows会话结束时检测#48 - 处理应用程序的退出事件#49 - 未处理的例外情况#50 - 应用程序范围属性#51 - 资源#52 - 定义和使用Application-Scoped资源#53 - 从代码访问Application-Scoped资源#54 - 应用程序的主窗口#55 - Application.ShutdownMode#63 - 三个改变的地方#64 - Visual Studio为您创建XAML#108 - 逻辑树#109 - 在代码中导航逻辑树#110 - 查看WPF逻辑树的应用程序#111 - 视觉树#112 - 在代码中导航Visual Tree#113 - 查看WPF可视树的应用程序#114 - 如何实现依赖属性#116 - Dependency属性值存储在DependencyObject中#117 - 注册依赖属性#118 - 不要向依赖属性Getter / Setter添加代码#119 - 从XAML或代码读取和写入依赖属性值#120 - 清除依赖属性值#121 - 当依赖属性的值发生变化时被通知#122 - 验证依赖属性#123 - 强制依赖属性#124 - WPF使用依赖项属性回调的一个示例#125 - 响应WPF对象的依赖属性的变化#127 - 使用触发器对依赖项属性更改做出反应#129 - 触发器更改的属性会自动重置#130 - WPF支持三种类型的触发器#131 - 依赖项属性在逻辑树中从较高的向上继承值#132 - 继承的属性值通过所有元素#168 - 更完整的类层次结构#169 - 基本元素类#170 - 基本元素类提供的功能#171 - 其他基类 - Freezable和Animatable#173 - 您可以将Freezable对象置于只读状态#175 - 冻结您不想修改的图形对象#176 - 两种模板#197 - 覆盖标准事件的应用程序类方法#198 - 创建和显示其他Windows#199 - 应用程序的Windows属性列出其所有Windows#200 - Windows之间的父/子关系#201 - 使用ShowDialog显示模态对话框#202 - 模态/无模式对话框的示例#203 - 窗口大小和位置在设备无关单元中指定#204 - 检测WPF窗口中的按键#205 - WPF GUI管道#206 - WPF应用程序使用事件驱动的范例#610 - 应用程序事件序列#611 - 在退出事件处理程序中设置应用程序退出代码#612 - 基于页面的应用程序的应用程序事件序列#759 - 与设备无关的单元(DIP)#1,098 - OnLastWindow关闭关机模式#1,099 - OnMainWindow关闭关机模式#1,100 - OnExplicitShutdown关闭模式#1,101 - 为未处理的异常定义处理程序#1,102 - 处理未处理的异常后关闭应用程序#1,105 - 使用应用程序的Windows集合与其他Windows交互

混合


#185 - 使用Blend创建WPF应用程序#186 - 何时使用Blend(与Visual Studio相比)#188 - 使用Blend向窗口添加控件#190 - 使用Blend向控件添加事件处理程序#192 - 使用Blend设置控件的属性#193 - 您可以在Blend和Visual Studio中同时打开一个项目#194 - Hello WPF World,Love Blend#287 - 通过编辑XAML向混合中的窗口添加控件#289 - 在Blend中编辑WPF代码隐藏#295 - Blend提供Intellisense#414 - 在Expression Blend中创建网格#427 - 改变混合内的边距#428 - 从Blend中设置其他布局属性#433 - 在Blend中编辑网格时保留边距#434 - Blend中的Canvas布局模式#511 - Blend Basics - 工具面板#512 - Blend中屏幕的区域#513 - 在Blend中使用选择工具#514 - 在Blend中选择对象的不同方法#515 - 在画板上放大和缩小#516 - 使用钢笔工具在混合中绘制路径#517 - 使用钢笔工具绘图时的XAML输出#518 - 使用直接选择工具更改路径中的点#519 - 将点添加到现有路径#520 - 使用铅笔工具绘制路径#521 - 钢笔和铅笔工具都生成路径元素#522 - Blend中的键盘快捷键#523 - 在Blend中*移画板#524 - 使用缩放工具放大画板#525 - 使用吸管工具复制颜色#527 - 彩色表达插件连接到Adobe Kuler#528 - 在颜色编辑器中使用吸管工具#529 - 使用油漆桶工具复制属性#530 - 在混合中创建线性渐变#531 - 使用渐变工具调整渐变#532 - 使用渐变工具移动渐变停止#533 - 使用渐变工具修改径向渐变#534 - 使用Blend中的形状工具绘制形状#535 - 在Blend中绘制对称形状#536 - 使用Blend中的工具面板添加布局面板#537 - 将布局面板更改为其他类型#538 - 混合中需要自动添加XAML结束标记#539 - 在Blend中添加基于文本的元素#540 - 在Blend中添加公共控件#541 - 在Blend的Assets面板中添加元素#542 - 最*使用的资产#543 - 在资产面板中搜索控件#544 - 对象和时间轴面板显示逻辑树#545 - 锁定对象以防止更改#546 - 在Blend中添加渐变停止#547 - 在Blend中按名称指定颜色#548 - 更改混合中渐变停止的偏移#549 - 比你知道更多的颜色该怎么做#550 - 将画笔转换为Blend中的资源#551 - 资源列在Blend的Resources选项卡下#552 - 设置属性以使用现有资源#553 - 在Blend中设置Alpha值#554 - 使用不透明蒙版#555 - 创建径向不透明蒙版#558 - 使用混合反转渐变#559 - 在混合中绘制蒙面渐变#565 - 无法在Blend中以设计模式滚动ScrollViewer的解决方法#566 - 在混合中设置效果的属性#567 - 在Blend中设置布局相关属性#568 - 在Blend中设置与文本相关的属性#569 - 在Blend中设置变换#570 - 使用Blend搜索属性#571 - 在Blend中移动Windows#572 - 您可以在混合GUI之外移动Windows#573 - Blend中的工作区


#556 - 使用不透明蒙版剪切到边框#557 - 将图像用作不透明蒙版#560 - 使用径向渐变创建3D效果

命令


#342 - 将按钮绑定到命令#343 - 将多个控件与同一命令关联#344 - CommandBinding CanExecute事件确定是否启用了按钮#345 - WPF命令模型优于传统事件处理程序模型#346 - 使用命令时无需为MenuItem设置标题属性#347 - 如何根据命令设置按钮的内容属性#348 - 预定义的命令对象,第一部分#349 - 预定义的命令对象,第二部分#1,078 - 使用Lambda表达式定义命令绑定#1,079 - 以编程方式执行命令#1,080 - 预先存在的命令的命令文本自动本地化#1,081 - 将CommandBinding添加到顶级CommandBindings#1,082 - 将CommandBindings添加到单个UI元素#1,083 - 在XAML中设置CommandBindings#1,084 - KeyBinding将命令绑定到键#1,085 - 输入绑定不要求元素绑定到命令#1,086 - 在XAML中定义键绑定#1,087 - 将密钥绑定与多个修改键关联#1,091 - 使用CommandTarget更改路由命令的源#1,092 - 使用CommandTarget的示例#1,093 - 在执行命令之前拦截命令#1,095 - 创建和使用自定义命令#1,096 - RoutedUICommand添加文本属性#1,097 - 在上下文菜单中获取项目以正确使用命令绑定#1,199 - 完成WPF命令示例

控制


#21 - WPF控制采样器#22 - 布局控制#27 - 类层次结构#28 - DispatcherObject#34 - ContentControl#35 - ItemsControl#177 - 内容演示者是内容控件内容的占位符#178 - 控件可以同时具有控制模板和数据模板#179 - 面板控件包含UIElement Children#207 - 设置控件的背景颜色#209 - 指定XAML中预期刷子的颜色#243 - 使用标签控件显示文本#244 - 使用TextBlock元素进行更丰富的格式化#245 - 使用TextBlock控件轻松内联文本格式代码#246 - 使用FlowDocument控件来托管整个文档#247 - 可以在FlowDocument中使用的块类型#248 - 在FlowDocument中创建一个列表#249 - 在FlowDocument中创建表#250 - 在FlowDocument中包含Section Block#251 - 在FlowDocument中嵌入UIElement#252 - FlowDocument自动流式传输其内容#253 - FlowDocument自动托管在FlowDocumentReader中#254 - 托管FlowDocument的容器类型#255 - FlowDocument中图像周围的流文本#256 - 使用FixedDocument在固定位置显示内容#257 - TextBox控件允许基本文本输入和编辑#258 - RichTextBox允许比TextBox更丰富的格式#259 - 为使用OpenType字体渲染的文本设置印刷术属性#267 - 在对控件进行子类化之前考虑两次#269 - 自动调整窗口大小以适合其内容#270 - 最小和最大窗口大小#271 - 更改窗口的调整大小行为#272 - 在窗口周围显示边框#273 - 使用图像控件显示图片#274 - 将图像作为二进制资源嵌入到项目中#275 - 将松散的图像文件加载到图像控件中#276 - 使用拉伸属性更改图像大小#277 - 图像可能嵌入了DpiX和DpiY信息#278 - 让图像变得更大,但不是更小(或反之亦然)#279 - 在图像控件周围添加边框#280 - 图像的对齐属性#281 - 为图像控件提供更多带边距的空间#282 - 保证金属性存储厚度值#283 - 一个窗口只能有一个子元素#284 - 使用不透明度属性使图像半透明#285 - 旋转图像#286 - 通过编辑XAML在Visual Studio中向窗口添加控件#296 - 从Control类派生的控件#297 - 创建控件或图像的镜像#298 - 按钮基础 - 内容和点击#299 - 控件不需要名称#300 - Button是一个ContentControl#301 - 使用访问密钥#302 - 没有标题的控件的访问键#303 - 使用下划线为控件定义访问键#304 - 定义一个关注不同控件的访问键#305 - 定义访问密钥的准则#306 - 键盘焦点#307 - 在应用程序启动时将焦点放在控件上#308 - 检查哪个控件具有键盘焦点#309 - 键盘焦点与逻辑焦点#310 - 提供控制逻辑焦点#311 - 把重点放在控制上,第二部分#312 - 在窗口中指定默*磁ィ313 - 在窗口中指定取消按钮#314 - 默认和取消按钮的典型用法#315 - 将IsDefault和IsCancel设置为相同的按钮#316 - 更改按钮的ClickMode#317 - 标签基础#318 - TextBox基础知识#328 - 使用填充属性的控件#338 - 设置控件的前景色#339 - 将按钮的文本内容包装到多行#340 - 创建带图像的按钮#341 - 创建一个带有图像和文本的按钮#350 - CheckBox基础知识#351 - 将CheckBox的IsChecked属性绑定到布尔变量#352 - 使用IsThreeState属性创建具有不确定状态的CheckBox#353 - 将三态CheckBox绑定到Nullable Bool#354 - 使用三态CheckBox显示其他复选框的状态#355 - 实现三态CheckBox依赖行为#356 - RadioButton基础知识#357 - RadioButton是一个ContentControl#358 - 将RadioButton绑定到枚举类型#359 - ToggleButton基础知识#360 - 将ToggleButton的IsChecked属性绑定到布尔变量#361 - 创建一个内容是图像的ToggleButton#362 - 当用户点击它时更改ToggleButton上的文本#363 - 日历控制基础#364 - 允许用户在日历控件中选择多个日期#365 - CalendarDate的SelectedDate和SelectedDates属性#366 - 将Calendar Control的SelectedDate属性绑定到Nullable DateTime#367 - 您无法绑定到Calendar Control的SelectedDates属性#368 - 在日历控件中指定中断日期#371 - 指定要显示的日历控件的默认日期#372 - 定义GUI元素的工具提示#373 - 创建更复杂的工具提示#374 - 使用工具提示显示TextBox的完整内容#375 - 将工具提示中的某些内容绑定到父控件上的属性#376 - 在工具提示中获取文本#377 - 通过将它们定义为资源来重用工具提示#378 - 定位工具提示#379 - 使用工具提示作为放大镜#380 - 帧控件可以托管Web内容#381 - 将.rtf文件加载到RichTextBox中#382 - 将RichTextBox内容保存为XAML#406 - 通过将一个分层叠加在另一个之上来创建新控件#435 - 使用边框元素在元素周围绘制边框#436 - 使用带边框的投影#437 - 在边框上显示圆角#438 - 边界元素可以有背景#439 - 使用带边框的DropShadow,第二部分#474 - 当鼠标移动项目时,隐藏组合框选择突出显示#481 - 您可以使用鼠标在InkCanvas控件上绘图#482 - 您可以在InkCanvas中包含其他控件#483 - InkCanvas MinHeight和MinWidth#484 - InkCanvas包含一个笔划集合#486 - InkCanvas支持不同的编辑模式#487 - 绘制到InkCanvas时指定DrawingAttributes#488 - 您可以在InkCanvas中更改现有笔划的绘图属性#489 - 使用InkCanvas识别手势,第一部分#490 - 使用InkCanvas识别手势,第二部分#491 - 显示超链接#493 - 设置用户界面元素的可见性#499 - 与发起事件的控件交互#504 - GroupBox基础知识#505 - GroupBox的标题可以是任何东西#506 - 使用ComboBox作为GroupBox标头#507 - 扩展器控制允许您展开/折叠一组控件#508 - 显示旋转忙指示符#509 - 在数据模板中显示忙指示符#510 - 扩展器的头部可以是任何东西#577 - 您可以在运行时更改DockPanel.Dock属性#623 - 可聚焦属性指示控件是否可以获得焦点#634 - 修改TextChanged事件中的文本#639 - 默认选项卡顺序是明智的#640 - 将TabIndex属性设置为Change Tab Order#641 - IsTabStop和Focusable之间的区别#642 - 可聚焦和IsTabStop结合使用#643 - 禁用控件无法获得焦点#644 - 禁用和隐藏控件#663 - IsMouseOver如何为嵌套元素工作#715 - 使用Thumb控件拖动画布上的对象#716 - 使用边框作为可以拖动控件的视觉指示#725 - 使用扩展的WPF工具包#726 - 扩展WPF工具包中的示例控件#809 - 您可以使用画笔作为控件的背景#810 - 从代码设置前景和背景属性#811 - 根据系统颜色设置代码中的颜色值#812 - 使用TextDecorations属性在文本下划线或打击#813 - 在文本块的中间应用TextDecorations#828 - ListView和GridView数据绑定示例#833 - CheckBox是一个ContentControl#834 - 在TabControl的选项卡上显示自定义内容#835 - 在GroupBox标题中显示自定义内容#836 - 将ContentControl的内容设置为CLR对象#837 - 窗口不能是ContentControl的子窗口#838 - 使用Label的访问键将焦点放在另一个控件上#839 - 标签的目标可能有自己的标签#840 - 访问键在窗口内应该是唯一的#841 - 始终显示访问密钥的下划线#842 - Label和TextBlock之间的差异#843 - TextBlock中的文本对齐#844 - TextBlock支持连字符#845 - 在TextBlock中显示省略号以指示内容不适合#846 - 在标签中包含下划线字符#847 - 默*磁バ形【鲇诮沟悖848 - 对于Button,IsDefaulted vs. IsDefault#849 - 你可以按下RepeatButton#850 - 指定RepeatButton的延迟和间隔#851 - 使用RepeatButtons移动东西#852 - 将三态CheckBox设置为不确定值#853 - CheckBox总是处于不确定状态#854 - CheckBox的Clicked与Checked / Unchecked事件#855 - RadioButtons根据其容器分组#856 - 将RadioButtons放在GroupBox中#857 - 手动分组RadioButtons#858 - 如何设置工具提示的属性#859 - 更改显示工具提示的时间量#860 - 使工具提示部分透明#861 - 工具提示延迟和时间#862 - 更改所有应用程序的默认工具提示延迟#863 - 禁用控件时通常不显示工具提示#864 - 使用控件模板更改工具提示的外观#865 - 工具提示可以超越窗口边界#866 - 显示弹出窗口#867 - 使用数据绑定控制是否打开弹出窗口#868 - 弹出窗口默认打开#869 - 不要打开弹出窗口#870 - Popup是一个ContentControl#871 - 弹出控件自动调整大小以适应其内容#872 - 动画弹出窗口#873 - 使用弹出窗口而不是工具提示#874 - 设置弹出窗口的背景#875 - 弹出控件不需要边框#876 - 默认弹出窗口放置#877 - 将弹出窗口设置为相对于另一个控件#878 - 相对于另一个控件定位弹出窗口的选项#879 - 相对于鼠标定位弹出窗口#880 - 定位弹出窗口时添加偏移量#881 - 将弹出窗口相对于任意矩形定位#882 - 屏幕边界的弹出位置#883 - ScrollViewer是一个ContentControl#884 - 使StackPanel滚动更加智能化#885 - 在ScrollViewer中包装网格#886 - 在ScrollViewer中包装画布#887 - 禁用和隐藏滚动条可见性之间的区别#888 - 在ScrollViewer中滚动内容的不同方法#889 - 从代码中滚动ScrollViewer#890 - 在ScrollViewer中将控件置于视图中#891 - 更改GroupBox的边框#892 - 更改GroupBox中所有内容的字体#893 - 创建一个带边框但没有标题的GroupBox#894 - 创建一个带有标题但没有边框的GroupBox#895 - 将水印添加到GroupBox#896 - TabControl将内容分组为一系列页面#897 - TabItem上的内容不会自动换行#898 - 设置TabItem上出现的文本#899 - 在TabControl的选项卡上显示多个控件#900 - 更改TabControl中使用的字体#901 - 在TabControl中滚动内容#902 - TabControl自动创建多行选项卡#903 - 在TabControl的不同侧面放置选项卡#904 - 将RadioButton放在TabControl中#905 - 当用户更改TabControl上的选项卡时执行某些代码#906 - 以编程方式更改TabControl上的当前选项卡#907 - 将TabControl绑定到对象列表,第一部分#908 - 将TabControl绑定到对象列表,第II部分#909 - 将TabControl绑定到对象列表,第III部分#910 - 使用数据绑定来控制TabControl的当前选定选项卡#911 - 使用ItemTemplate控制选项卡上的内容#912 - 扩展扩展器将触发布局#913 - 更改扩展器扩展的方向#914 - 在扩展器周围绘制边框#915 - 延迟扩展器内容的生成#916 - 在扩展器控件中滚动内容#917 - 扩展扩展器时改变某些东西#918 - 限制用户可以输入多少文本到TextBox中#919 - 更改TextBox的边框#920 - 适合其内容的TextBox大小#921 - TextBox控件中可用的键盘快捷键#922 - TextBox控件中可用的鼠标快捷方式#923 - 文本框中的文本环绕#924 - TextBox Wrap vs. WrapWithOverflow#925 - 滚动没有包装的TextBox文本#926 - 包含嵌入式托架的文本自动返回换行#927 - 限制TextBox的大小#928 - TextBox.MinLines在启动时无法正确调整大小#929 - 允许TextBox中的多行输入#930 - LineCount属性表示TextBox中的行数#931 - 从代码中滚动文本框中的文本#932 - 使TextBox成为只读或禁用#933 - 在TextBox中剪切/复制/粘贴功能#934 - TextBox具有内置的撤消功能#935 - 设置TextBox的撤消限制#936 - 反映当前所选文本的TextBox属性#937 - 从代码中选择TextBox中的文本#938 - 更改TextBox中的选定文本颜色#939 - 从TextBox中检索单个文本行#940 - 轻松选择TextBox中的整个单词#941 - 强制TextBox中的大写或小写#942 - TextBox中的文本对齐#943 - 启用TextBox中的拼写检查#944 - 在TextBox中输入特殊字符#945 - 限制TextBox中允许文本的策略#947 - 在TextBox中拦截粘贴操作#948 - 限制TextBox输入的完整示例#949 - 在TextBox中添加拼写检查的自定义词典#950 - PasswordBox允许输入密码#957 - 一些基于列表的控件的调查#958 - 填充列表控件的三种方法#959 - ListBox基础知识#960 - ListBox可以存储不同类型的对象#961 - ListBox有三种可用的选择模式#969 - ListBox的Items属性包含Items列表#970 - 避免直接使用物品集合#971 - 项目属性是内容属性#972 - 如何呈现ListBox项#973 - ListBox的键盘快捷键#974 - 用于检索ListBox中所选项的属性#975 - ListBox的SelectedValue和SelectedValuePath#976 - ItemsControl上的SelectedItem绑定是双向的#977 - DisplayMemberPath指示用于显示绑定项的属性#978 - 发现是否选择了ListBox中的项目#979 - 以编程方式选择ListBox中的项目#980 - 将ListBox选择绑定到绑定对象上的属性#981 - 在ListBox中包含CheckBox和每个项目#982 - 列表框中的选定项目更改时执行代码#983 - 使用CollectionViewSource对ListBox中的项进行排序#984 - 使用CollectionViewSource对ListBox中的项进行分组#985 - 在ListBox中显示可扩展组#986 - 使用CollectionViewSource过滤ListBox#987 - 关于刷新或更改为集合的CollectionViewSource更新#988 - 在CollectionViewSource中启用实时排序#989 - 在CollectionViewSource中启用实时过滤#990 - 键入文本以在ListBox中选择项目#991 - 通过键入指定用于查找项目的字段#992 - 将ListBox中的项目滚动到View中#993 - ListBox的默认控制模板#995 - ListBox默认使用UI虚拟化#996 - 关闭ListBox中的UI虚拟化#998 - 水*定位ListBox#999 - 使用Canvas作为ListBox的Items面板#1,000 - 在圆圈中显示ListBox的内容#1,001 - 在ItemsControl中设置交替背景颜色#1,002 - 在ItemsControl中为AlternationCount使用更大的值#1,003 - 在ListBox中将CanContentScroll设置为False以进行*滑滚动#1,004 - 设置CanContentScroll禁用虚拟化#1,005 - 启用延迟滚动以获得更好的性能#1,006 - ListBox中的滚动条显示为需要#1,007 - 更改ListBox的滚动条设置#1,008 - ComboBox基础知识#1,009 - ComboBox数据绑定基础知识,第一部分#1,010 - ComboBox数据绑定基础知识,第二部分#1,011 - ComboBox数据绑定基础知识,第三部分#1,012 - 使用不同的数据模板面对ComboBox#1,013 - 键入文本以选择ComboBox中的项目#1,014 - 键入文本以选择组合框中的项目,第II部分#1,015 - 键入文本以选择组合框中的项目,第III部分#1,016 - 在WrapPanel中显示项目集合#1,017 - 使用滑块缩放列表中的项目#1,018 - 滑块基础知识#1,019 - 将滑块约束为整数值#1,020 - 在滑块上显示刻度标记#1,021 - 在滑块上定位刻度线的两种方法#1,022 - 渲染不同颜色的刻度标记#1,023 - 显示显示滑块值的工具提示#1,024 - 使滑块循环通过枚举类型的值#1,025 - 滑块价值的小而大的变化#1,026 - 水*和垂直滑块#1,027 - 在滑块上显示子范围#1,028 - ProgressBar基础知识#1,029 - 简单的ProgressBar示例#1,030 - 显示不确定的进度条#1,031 - 从后台线程更新ProgressBar#1,033 - ProgressBar可以是水*或垂直的#1,034 - 限制日历中可选日期的范围#1,035 - DatePicker基础知识#1,036 - DatePicker控件中的日期格式#1,037 - 手动将文本输入DatePicker#1,038 - 防止某些日期被选中的另一种方法#1,039 - 拦截输入DatePicker的错误日期字符串#1,043 - 使用DockPanel作为ListBox的Items面板#1,088 - 删除密钥绑定#1,089 - 向命令添加参数#1,090 - CommandBinding事件处理程序中的发件人与源#1,094 - 禁用TextBox中的编辑操作#1,135 - 创建自定义控件的替代方法#1,136 - WPF控件看起来很糟糕#1,141 - 附加属性允许自定义现有控件#1,142 - 从代码设置附加属性值#1,143 - StreamGeometry的坐标系#1,144 - 自定义形状中的几何体不会自动缩放#1,145 - 在自定义形状中使用RenderSize#1,163 - 使用控制模板制作可点击图像#1,177 - UIElement与FrameworkElement vs. Control#1,178 - 基于FrameworkElement的自定义元素#1,179 - 自定义FrameworkElement的对齐和边距属性#1,180 - 默认情况下,FrameworkElement没有所需的大小#1,181 - 自定义元素表示MeasureOverride中的所需大小#1,182 - 在自定义元素中使用RenderSize属性#1,183 - 使用数据模板的位置#1,184 - 使用数据模板的地方,第二部分#1,185 - ItemsControl自定义摘要#1,186 - ListBox的默认ItemContainerStyle#1,187 - 使用ItemContainerStyle更改ItemsControl中的项目#1,188 - 使用ItemContainerStyle为ItemsControl中的项目添加动画效果#1,189 - MeasureOverride输入和输出#1,190 - VisualChildrenCount和GetVisualChild#1,191 - 具有单个子元素的自定义元素#1,192 - 呼叫儿童元素安排#1,193 - MeasureOverride和Margins#1,194 - 所需的儿童元素大小包括边距#1,198 - 在禁用面板中有选择*粲米釉

数据绑定


#25 - 数据绑定概述#126 - 使用绑定对依赖属性更改做出反应#369 - 将标签的内容绑定到当前日期和时间#370 - 将标签的内容绑定到当前日期和时间,第II部分#395 - 使用数据绑定的Rich ListBox内容,第一部分#396 - 使用数据绑定的Rich ListBox内容,第二部分#397 - 使用数据绑定的Rich ListBox内容,第III部分#485 - 将ComboBox绑定到枚举类型的值列表#494 - 使用值转换器绑定到可见性属性#495 - 在不使用值转换器的情况下绑定到可见性属性#635 - 使用值转换器更改用户输入#825 - CheckBox的双向绑定#964 - ListBox数据绑定基础,第一部分#965 - ListBox数据绑定基础知识,第二部分#966 - ListBox数据绑定基础知识,第三部分#967 - ListBox数据绑定基础知识,第四部分#968 - ListBox数据绑定基础知识,第五部分#1,137 - 值转换器基础知识#1,138 - 输出的值转换器示例#1,139 - 输入值转换器示例#1,140 - 在模板中使用值转换器

依赖属性


#29 - 依赖属性#133 - 依赖属性获取其值的位置#134 - 依赖属性值来源:#1 - 本地值#135 - 依赖属性值源:#2 - 父模板触发器#136 - 依赖属性值来源:#3 - 父模板#137 - 风格属性的价值来自三个地方之一#138 - 依赖属性值来源:#4 - 隐式样式#139 - 依赖属性值来源:#5 - 样式触发器#140 - 依赖属性值源:#6 - 模板触发器#141 - 依赖属性值来源:#7 - 样式制定者#142 - 依赖属性值来源:#8 - 主题样式触发器#143 - 依赖属性值来源:#9 - 主题样式#144 - 依赖属性值来源:#10 - 继承#145 - 依赖属性值来源:#11 - 默认值#146 - 使用GetValueSource方法查找依赖属性值的来源#147 - 如果要在控件中设置依赖属性值,请使用SetCurrentValue#148 - 使用表达式设置的属性值覆盖基值#149 - 使用PropertyChanged和Coercion回调来强制属性之间的依赖关系#150 - 使用PropertyChanged和CoerceValue回调的示例#151 - 依赖属性记住非强制值#152 - 使用ReadLocalValue()查找依赖项属性的本地值#153 - 您可以为任何依赖项对象设置任何依赖项属性的值#154 - 重用类中的现有依赖项属性#155 - 实现附加的依赖属性#156 - 使用Tag属性存储带元素的自定义数据#157 - 您可以从XAML设置标准CLR属性#158 - 何时创建自定义依赖项属性#159 - 创建只读依赖属性#160 - 从DependencyObject构造函数设置依赖项属性值时要小心#161 - 读取依赖属性的元数据#162 - UIPropertyMetadata和FrameworkPropertyMetadata#163 - 构建FrameworkPropertyMetadata#164 - 覆盖继承的依赖项属性的元数据#165 - 覆盖元数据可能导致合并元数据#166 - 您可以覆盖任何依赖项属性的元数据#167 - 实现一个集合的依赖属性#574 - 实现依赖属性的完整示例#575 - PropertyMetadata与FrameworkPropertyMetadata#1,040 - 依赖属性继承的示例

活动


#500 - 在多个控件之间共享事件处理程序,方法I.#501 - 在多个控件之间共享事件处理程序,方法II#502 - Sender vs. RoutedEventArgs.Source#503 - 在投射RoutedEventArgs.Source时要小心#576 - 传统CLR事件的工作原理#579 - 为用户界面元素添加事件处理程序#580 - WPF中的事件已路由#581 - 路由事件的示例#582 - 即使未定义处理程序,也会路由事件#583 - 中断路由进程#584 - 处理已经处理的事件#585 - 隧道事件传播逻辑树#586 - 冒泡和隧道事件通常是配对的#587 - 隧道和冒泡事件的目的#588 - 如果您处理PreviewKeyDown事件,KeyDown将不会触发#589 - 标准隧道/冒泡事件对#590 - 并非所有路由事件都存在于对中#591 - 您可以将任何路由事件附加到任何控件#592 - 在代码中添加事件处理程序#593 - AddHandler方法可以为任何事件添加处理程序#594 - 封面下的路由事件#595 - 定义事件处理程序的语法选择#596 - 声明事件处理程序时使用Lamba表达式#597 - 事件处理程序的命名约定#598 - 路线事件的三种风味#599 - 路由事件的完整示例#600 - 注册路由事件#601 - RoutedEventHandler委托类型#602 - 访问RoutedEventArgs中的信息#603 - Sender,Source和OriginalSource示例#604 - 定义新的路由事件#605 - 使用RoutedEventArgs的子类#606 - 重复使用课程中的现有路由事件#607 - 实例处理程序与类处理程序#608 - 在实例处理程序之前调用类处理程序#609 - 在Window.Loaded Handler中执行初始化#615 - FrameworkElement对象的标准对象生命周期事件#616 - FrameworkElement.Initialized和Loaded Event Order#617 - 输入事件#618 - 键盘事件摘要#619 - 键上/下事件的事件序列#620 - 为什么有这么多KeyPress事件?#621 - 处理预览Keypress事件的示例#622 - 键盘事件的来源#624 - 关键上/下事件可用的信息#625 - 将Keypress时间戳转换为DateTime#626 - 使用CTRL键时的键上/下序列#627 - 检测是否在KeyDown事件处理程序中按下Ctrl键#628 - 使用ALT键时的按键上/下行序列#629 - 某些控件可能会吞下Keypress事件#628 - 使用ALT键时的按键上/下行序列#629 - 某些控件可能会吞下Keypress事件#630 - PreviewTextInput和TextInput事件#631 - KeyPressUp,KeyPressDown和TextInput的事件序列#632 - 使用PreviewTextInput阻止输入#633 - TextBox文本更改后TextChanged事件触发#636 - 按住键时触发的键盘事件#637 - 通过设置Handled为true来阻止重复键#638 - 在许多情况下,PreviewTextInput未被触发#645 - 检查是否存在修饰键#646 - 在Keypress处理程序中检测Key的切换状态#647 - 您可以将任何键视为切换键#648 - 检查任意键的切换状态#649 - KeyStates属性结合了IsDown和IsToggled#650 - 从任何方法获取有关键盘键的信息#651 - 使用键盘类的静态成员#652 - 鼠标事件摘要#653 - MouseMove事件#654 - 按钮按下的鼠标事件#655 - 某些控件吞噬了冒泡的鼠标事件#656 - 鼠标按钮事件处理程序可用的数据#657 - 检测用户界面元素中的双击#658 - 处理鼠标双击的更简单方法#659 - 检测三击#661 - ButtonBase.Click事件与鼠标单击事件#662 - IsMouseOver属性#664 - MouseEnter和MouseLeave事件#665 - 对MouseEnter / MouseLeave事件做出反应#666 - 使用触发器对鼠标进行控制#667 - IsMouseOver与IsMouseDirectlyOver#668 - 检索鼠标的当前位置#669 - 在事件处理程序中检索鼠标的当前位置#670 - 相对于特定元素获取鼠标位置#671 - Mouse.GetPosition仅在鼠标位于窗口时有效#672 - 鼠标坐标位于设备无关单元中#675 - 处理PreviewMouseWheel和MouseWheel事件#676 - MouseWheel事件被触发鼠标指针结束的元素#677 - 为什么标准鼠标滚轮Delta为120#678 - 使用IsHitTestVisible属性隐藏鼠标中的元素#679 - 将IsHitTestVisible设置为False可防止与控件交互#680 - IsHitTestVisible适用于所有子元素#681 - 隐藏,折叠或隐藏可见性时没有鼠标事件#682 - 面板元素仅在设置背景时触发鼠标事件#683 - MouseUp可以在MouseDown的不同控制下发生#684 - 鼠标结束的元素出现鼠标事件#685 - 捕获鼠标#687 - 如果忘记释放鼠标会发生什么#689 - 应用程序可能会丢失其鼠标捕获#690 - 当鼠标捕获丢失时被通知#691 - IsMouseCaptured指示当前是否捕获了鼠标#692 - 通用控件通常不捕获鼠标#693 - TextBox控件支持拖放#694 - 自定义拖放行为的示例#695 - 实现拖放行为#696 - 丢弃目标可以从其他应用程序接收数据#697 - 将数据拖出应用程序#700 - 将图像拖动到Microsoft Word#701 - 在WPF应用程序之间拖动图像#702 - 在WPF应用程序中拖动图像#703 - 指示允许丢弃的格式#704 - 转义键取消拖放行为#705 - 使用序列化作为格式拖动自定义对象#706 - 在应用程序之间拖动用户界面元素#707 - 将项目列表从WPF应用程序拖动到Excel中#708 - 将文件拖到WPF应用程序中#710 - DoDragDrop是阻止呼叫#711 - 拖动时更改鼠标光标#712 - 拖动时显示自定义鼠标光标#713 - 拖动时将光标设置为UIElement的图像#714 - 设置光标以在拖动时渲染某些文本#717 - 在Windows 7上使用Touch拖放#729 - 拖动时Mouse.GetPosition不起作用#730 - 使用QueryContinueDrag事件来了解鼠标按钮状态何时更改#731 - 多点触控的想法#732 - 原始触摸输入的基本事件#733 - 触摸相关事件的完整列表#734 - 识别触摸事件处理程序中的不同手指#735 - 系统小程序指示最大接触点数#736 - 在运行时查找最大触摸点数#737 - 达到最大触摸点数时的触摸行为#738 - 示例代码 - 在接触点绘制和移动圆圈#739 - 处理不同级别的触摸输入#740 - 将画布背景设置为透明以接收触摸事件#741 - 使用触摸操作事件翻译元素#742 - 使用触摸操作事件旋转元素#743 - 使用触摸操作事件来缩放元素#744 - 在触摸操作期间将元素保持在窗口内#745 - 惯性基础知识#746 - 指定惯性减速度#747 - 在触摸操作期间实现惯性#748 - 在原始触摸期间获取接触点的大小#749 - 处理TouchEnter和TouchLeave事件#750 - 使用触摸操作在一个维度中进行翻译#751 - 指示您支持的触摸操作模式#752 - 通过触摸操作进行缩放时跟踪总比例#753 - ManipulationDelta事件中的规模与扩展#754 - 在触摸操作期间实现扩展惯性#755 - 在触摸操作期间实现旋转惯性#756 - 使用惯性时使元素在窗口边缘停止#1,066 - 元素必须可见并启用以触发事件#1,073 - 附加活动#1,074 - 附加事件语法#1,075 - 触发IsKeyboardFocusWithin属性

字体


#260 - 字体的概念#261 - Windows 7中的标准字体#262 - 字体样本表#263 - 指定字体属性#264 - 指定FontWeight的值#265 - 为FontStyle指定值#266 - 指定FontSize的值#268 - 默认FontFamily和FontSize#334 - 为FontFamily指定值#335 - WPF如何在目标系统上查找字体#336 - Intellisense显示开发系统上可用的字体#337 - 在窗口中指定所有控件的字体属性#814 - 您可以指定要尝试的字体列表#815 - 使用所有字体列表填充ListBox#816 - 使用字体对话框选择字体#817 - 将字体嵌入到您的应用程序中#818 - 预览已安装的字体#819 - 在Windows资源管理器中预览TrueType字体#820 - 在Windows资源管理器中查看其他字体属性#821 - 使用TextFormattingMode使文本看起来更清晰#822 - 决定使用哪个TextFormattingMode

图像


#24 - 不要在WPF应用程序中使用位图#172 - 对画笔消费者的画笔级联的更改#174 - 预定义的画笔已经冻结#208 - 颜色值存储为RGB值#210 - 将XAML中的颜色指定为RGB值#211 - 在代码中创建颜色值#212 - 创建线性渐变画笔#213 - 更改线性渐变画笔中的渐变线#214 - 在控件内开始/结束渐变填充#215 - 填充区域外的梯度差价的其他选择#216 - 在渐变填充中定义几个不同的渐变停止#217 - 使用径向渐变画笔#218 - 定义径向渐变的焦点#219 - 改变径向渐变的半径#220 - 使用预定义颜色#221 - 在运行时更改画笔#222 - 示例:使用RGB滑块更改颜色#223 - 预定义的系统颜色#224 - 在XAML中使用预定义的系统颜色#225 - 使用将在系统颜色更改时更新的画笔#226 - 渐变填充调整为控件的大小#227 - 您可以指定绝对坐标中的渐变填充#228 - 在控件外开始/结束渐变填充#229 - 为窗口边框使用渐变画笔#230 - 当鼠标移过控件时更改径向渐变#231 - 您可以使用画笔作为控件的前景#232 - DrawingVisual类#233 - 从DrawingVisual类派生的示例#234 - 获取在窗口中渲染的DrawingVisual对象#235 - 可以使用DrawingContext创建的可视内容类型#236 - 将任意几何绘制成DrawingVisual#237 - 使用Shape子类绘制形状#239 - 通过覆盖Shape类创建自定义形状#240 - Shape vs. DrawingVisual#241 - 使用DrawText渲染文本#242 - 使用DrawGlyphRun绘制文本#561 - 使用径向渐变绘制3D甜甜圈#562 - 为混合中的元素设置效果#563 - Expression SDK中的其他效果#564 - 获得第三方效果的其他地方#699 - 将图像控件转换为位图#1,146 - 极坐标系#1,147 - 从极坐标转换为笛卡尔坐标#1,148 - 从极坐标转换为笛卡尔坐标的示例代码#1,149 - 在自定义形状中绘制圆弧#1,150 - 自定义弧形,第二部分#1,151 - 自定义弧形,第三部分#1,152 - 自定义“馅饼切片”形状#1,153 - 处理影响渲染的自定义依赖项属性#1,154 - 为自定义控件中的标准依赖项属性提供默认值#1,155 - 循环进度指标#1,156 - 将循环进度控制更改为仅弧#1,157 - 重写的默认属性值显示在属性窗格中#1,160 - 将文本标签添加到循环进度控制#1,161 - 在控制模板中使用自定义循环进度形状

输入


#1,067 - 尝试使用键盘焦点#1,068 - 大多数控件都可以获得键盘焦点#1,069 - 主窗口最初具有键盘焦点#1,070 - 键盘焦点事件的事件序列#1,071 - TextBox如何反应以获得键盘焦点#1,072 - 添加与键盘焦点相关的自定义触发器#1,076 - 检查Keypress处理程序中修改键使用的两种方法#1,077 - 检查单个修改器与多个修改器密钥

布局


#180 - 布局如何工作#319 - StackPanel堆栈垂直或水*控制#320 - StackPanel子控件的默认大小#321 - Horizo??ntalAlignment和VerticalAlignment#322 - 为StackPanel子控件提供显式大小#323 - 使用保证金在StackPanel儿童周围提供空间#324 - 在每个边缘设置不同大小的边距#325 - 在代码中指定保证金价值#326 - 使用两个参数指定对称边距#327 - 使用填充在控件中提供额外空间#329 - WPF中的布局原则#330 - Horizo??ntalContentAlignment和VerticalContentAlignment#331 - Horizo??ntalContentAlignment和VerticalContentAlignment的默认值#332 - Horizo??ntalContentAlignment和VerticalContentAlignment有时不相关#333 - 保证金和填充概述#383 - 基于坐标的布局问题#384 - 基于流的布局的好处#385 - 你可以嵌套面板控件#386 - 布局=面板+ FrameworkElements +对齐/边距/填充#387 - 设置背景颜色以查看布局的工作原理#388 - 布局容器不提供滚动支持#389 - 在ScrollViewer中包装面板以提供滚动支持#390 - ScrollViewer中的滚动条可见性#391 - 抗锯齿可能导致模糊的GUI元素#392 - 使用SnapsToDevicePixels属性来防止抗锯齿#393 - 画布元素#398 - WrapPanel元素#399 - WrapPanel将更改其子项的布局作为其大小更改#400 - 使用WrapPanel作为ListBox的Items面板#401 - DockPanel元素#402 - DockPanel的最终子项默认填充剩余空间#403 - DockPanel儿童的顺序很重要#404 - 网格在行和列中托管子控件#405 - Grid.Row和Grid.Column属性的默认值#407 - 网格默*バ泻土校408 - ShowGridLines属性允许您查看网格中的单个单元格#409 - 网格大小中的子元素以适*ピ瘢410 - 默认网格行和列大小#411 - 使用Horizo??ntalAlignment和VerticalAlignment在网格中定位子元素#412 - 在网格中设置行高或列宽的三种方法#415 - 将网格行高度和列宽属性设置为绝对值#416 - 将网格行和列设置为自动调整大小#417 - 使用星形大小在行或列之间均匀分布空间#418 - 星形大小允许相对于彼此设置行和列大小#419 - 使用星形大小时如何计算单元格大小#420 - 您可以使用浮点值进行星号调整#421 - 网格中的Horizo??ntalAlignment,Margins和Column Width#422 - 设置网格中行和列的最小高度和宽度#423 - 设置网格中行和列的最大高度和宽度#424 - 使ListBox中的数据绑定项具有一致的大小#425 - SharedSizeGroup允许跨不同网格共享列大小#426 - 布局面板也可以有边距#429 - 影响布局的子元素属性#430 - 使用不同的单位设置宽度和高度#431 - 将控件的宽度绑定到其高度#432 - 高度和宽度与ActualHeight和ActualWidth#440 - 对齐属性在WrapPanel中的行为方式#441 - 为WrapPanel中的子元素设置一致的高度/宽度#442 - WrapPanel子元素可以剪裁#443 - 反转WrapPanel中的流向#444 - DockPanel的孩子不一定要被拉伸#445 - DockPanel可以像StackPanel一样使用#446 - DockPanel Children的默认对接#447 - 您可以在DockPanel中使用布局转换#448 - 集合中的数据绑定元素到网格,第一部分#449 - 集合中的数据绑定元素到网格,第二部分#450 - 集合中的数据绑定元素到网格,第III部分#451 - 集合中的数据绑定元素到网格,第IV部分#452 - 集合中的数据绑定元素到网格,第五部分#453 - UseLayoutRounding属性将事物与像素边界对齐#454 - UseLayoutRounding与SnapsToDevicePixels#455 - 使用ItemContainerStyle将集合中的数据元素绑定到网格#456 - 网格中的元素可以跨越多行或多列#457 - 使用GridSplitter让用户更改网格中的行或列大小#458 - 使用水*或垂直GridSplitter时要设置的属性#459 - 在同一网格中使用两个(或更多)GridSplitter元素#460 - GridSplitter可以与另一个控件共享一个单元格#461 - 使GridSplitter看起来是三维的#462 - 绘制一个更好看的GridSplitter#463 - 多个并行GridSplitters#464 - ShowsPreview属性使用GridSplitter延迟行/列大小更改#465 - 将GridSplitters与嵌套网格结合使用#466 - 将GridSplitter与SharedSizeGroup结合使用#467 - 将UniformGrid用于均匀间隔的行和列#468 - FirstColumn属性允许UniformGrid中的空白单元格#469 - 从右到左填充UniformGrid#470 - 支持RightToLeft Flow的元素#471 - FlowDirection如何与图像元素一起使用#472 - UniformGrid默认为正方形#473 - 在画布中定位子元素#475 - 画布中的子元素可以重叠#476 - 为画布的子元素设置ZIndex值#477 - 画布子元素的默认ZIndex值#478 - 四个边距值中的两个用于画布中的元素#479 - 在画布中对子元素使用布局转换#480 - ZIndex值和渲染变换#492 - 布局可以在运行时更改#496 - 使用StackPanel创建一组相同大小的按钮#497 - 使用UniformGrid创建一组相同大小的按钮#578 - 网格行和列大小使用GridLength对象#757 - RenderSize,ActualHeight和ActualWidth#758 - 从LayoutUpdated事件处理程序中访问实际高度和宽度#760 - 水*和垂直对齐基础#761 - FlowDirection如何影响Horizo??ntalContentAlignment#762 - 基于CurrentUICulture在运行时设置FlowDirection#767 - 变换基础知识#768 - 缩放变换#769 - 旋转变换#770 - LayoutTransform和RenderTransform之间的差异#771 - 设置旋转变换的中心点#772 - 使用RenderTransformOrigin更改旋转变换的中心点#773 - 旋转中心点可以在元素之外#774 - 翻译变换#775 - 歪斜变形#776 - 设置偏斜变换的中心点#780 - 组合变换#781 - 转变订单事项#782 - RenderTransform比LayoutTransform具有更好的性能#786 - 使用数据绑定来控制2D变换#787 - 使用矩阵乘法转换点#788 - 使用比例变换翻转元素#789 - 比例变换的工作原理#790 - 旋转变换的工作原理#791 - 矩阵乘法,第一部分 - 行和列#792 - 矩阵乘法,第二部分 - 乘以一列的行#793 - 矩阵乘法,第III部分 - 程序#794 - 矩阵乘法,第四部分 - 一些例子#795 - 翻译转换的工作原理#796 - WPF转换使用同构坐标#797 - 使用齐次坐标进行缩放变换#798 - 使用齐次坐标的旋转变换#799 - 变革如何结合起来#800 - 变换不影响ActualWidth和ActualHeight#801 - 使用RenderTransform创建镜像#802 - 变换不会影响元素的边距#803 - 使用MatrixTransform指定任意变换#804 - 将MatrixTransform指定为简单字符串#805 - 变换字符串的一些示例#806 - 从代码设置画布中子元素的ZIndex值#807 - 从代码中设置画布中子元素的位置#808 - 如何将形状元素定位在画布中#1,041 - 旋转时拉伸的子元素未拉伸#1,042 - FlowDirection如何影响StackPanel#1,044 - 在网格单元格中放置多个元素#1,045 - 使用ZIndex控制网格中元素的分层#1,046 - 在网格中设置单元格的背景颜色#1,047 - 从代码设置网格的行或列的大小#1,048 - 如何设置GridSplitter的对齐属性#1,049 - 当单元格使用星形大小时,GridSplitter的行为方式#1,050 - 当单元格使用绝对大小时GridTelitter的行为方式#1,051 - 当单元格使用自动调整大小时GridSplitter的行为方式#1,052 - 在网格中制作相同大小的两列#1,053 - SharedSizeGroup如何与列大小调整相关联#1,054 - TabPanel包裹和均匀空间#1,055 - 画布不会剪辑子元素#1,056 - 网格剪辑子元素#1,057 - 防止网格剪切子元素#1,058 - 翻译在布局转换中没有任何意义#1,059 - 网格中的剪切与调整大小#1,060 - 在渲染变换之前发生网格剪辑#1,061 - 使用ViewBox扩展内容#1,062 - 使用ViewBox缩放画布#1,063 - ViewBox拉伸选项#1,064 - 限制ViewBox只在一个方向上缩放#1,065 - ViewBox子项必须具有显式大小#1,162 - 行动布局,第一部分#1,165 - 行动布局,第二部分#1,166 - 行动布局,第三部分#1,167 - 行动布局,第四部分#1,168 - 行动布局,第五部分#1,169 - 自定义面板,第一部分(测量和排列)#1,170 - 自定义面板,第二部分(儿童元素的简单安排)#1,171 - 自定义面板,第III部分(使用DesiredSize)#1,172 - 自定义面板,第四部分(ZIndex)#1,173 - 自定义面板,第五部分(两列)#1,174 - 自定义面板,第VI部分(附属性)#1,175 - 自定义面板,第VII部分(使用附加财产安排)#1,176 - 自定义面板,第八部分(类似树状图的可视化)

#1,112 - 国际化与本地化#1,113 - 在国际化中使用文化#1,114 - 文化代码#1,115 - 国际化I - 服从当前的文化输出#1,116 - Obeys CurrentCulture的输出示例#1,117 - 国际化II - 服从当前文化的投入#1,118 - Obeys CurrentCulture的输入示例#1,119 - 本地化I - 设置UICulture标签#1,120 - 获取所有支持的文化列表#1,121 - 本地化II - 为所有可本地化元素分配UID#1,122 - 本地化III - 初始创建后更新UID#1,123 - 本地化IV - 下载并构建LocBaml工具#1,124 - 本地化V - 使用LocBaml提取可本地化内容#1,125 - 本地化VI - 解释由LocBaml工具输出的CSV文件#1,126 - 本地化VII - 防止译者修改某些元素#1,127 - 本地化VIII - 将评论传递给译者#1,128 - 本地化IX - 本地化内容#1,129 - 本地化X - 将翻译集成到应用程序中#1,130 - 本地化XI - 卫星集会#1,131 - 本地化XII - 设置NeutralLanguageResources属性#1,132 - 本地化XIII - 验证本地化内容#1,133 - 本地化XIV - 向已经本地化的应用程序添加内容#1,134 - 本地化XV - 本地化其他内容

媒体


#8 - 音频和视频#698 - 使用MediaPlayer对象播放MP3文件


#115 - 下载所有.NET 4源代码#238 - WPF上最好的书籍#498 - WPF博客和论坛列表#526 - 使用Adobe Kuler创建颜色主题#673 - 将鼠标位置映射到颜色#674 - 将鼠标位置映射到颜色,第II部分#688 - 用鼠标移动元素#709 - 更改光标#718 - 将文本复制到剪贴板和从剪贴板复制文本#719 - ASCII艺术生成器#720 - 发现剪贴板上有哪些数据#721 - 用于查看剪贴板的工具#724 - 检查控制模板的示例代码#727 - 从剪贴板获取文件列表#728 - 使用剪贴板传输其他类型的数据#763 - CurrentCulture与CurrentUICulture之间的差异#764 - 将数据转换为字符串时使用当前文化#765 - WPF数据绑定忽略CurrentCulture#766 - WPF数据绑定忽略自定义格式#783 - 下载和安装WPF Performance Suite#784 - 使用Perforator工具分析WPF应用程序性能#785 - 使用Visual Profiler工具#823 - 从XAML设置光标#824 - 在顶层元素上设置光标#826 - 低级元素可以有不同的光标#827 - 覆盖子元素的光标属性#829 - 从代码设置应用程序范围的游标#830 - 从文件加载光标#831 - 在项目中嵌入光标作为资源#832 - 创建光标文件#946 - 检查字符串中的有效字符#962 - 由Hue组织的颜色选择框,第一部分#963 - 由Hue组织的颜色选择框,第二部分#1,103 - 配置启动画面#1,104 - 启动画面的工作原理#1,106 - 创建单实例应用程序#1,107 - 使用Uri访问嵌入式资源#1,108 - 使用Reflector获取资源列表#1,109 - 访问不同程序集中的资源#1,110 - 使用资源作为内容文件#1,111 - 从XAML引用内容文件

安全


#951 - 在字符串中存储机密数据时的安全问题#952 - 托管字符串的安全问题#953 - 使用SecureString对象存储机密文本数据#954 - 仅在SecureString实例中存储机密数据#955 - 从SecureString中获取数据#956 - PasswordBox将密码存储为SecureString

样式


#1,200 - 覆盖默认样式

视觉工作室


#3 - 开发WPF应用程序的工具#4 - WPF取代Windows窗体#37 - 选择要定位的.NET Framework版本#88 - 查找WPF类型的元数据#89 - 使用Visual Studio跟踪WPF类型的继承链#90 - 在Visual Studio 2010中加入.NET源代码#91 - InitializeComponent()的作用#128 - 使用代码片段实现依赖属性#181 - 创建WPF开发环境#182 - 从Visual Studio或Blend创建WPF项目#183 - Visual Studio 2010和Expression Blend 4中提供的项目类型#184 - 使用Visual Studio创建WPF应用程序#186 - 何时使用Blend(与Visual Studio相比)#187 - 使用Visual Studio向窗口添加控件#189 - 使用Visual Studio向控件添加事件处理程序#193 - 您可以在Blend和Visual Studio中同时打开一个项目#288 - 在Visual Studio中编辑WPF代码隐藏#290 - 在Visual Studio中使用Intellisense#291 - Intellisense列出可用的方法和属性#292 - Intellisense包含有关方法参数的信息#293 - Intellisense将显示重载方法#294 - 在XAML编辑器中也可以使用Intellisense#413 - 从Visual Studio Designer创建网格#722 - 获取Visual Studio 2012的免费副本#723 - 在Visual Studio 2012中关闭所有Caps Men#994 - 从Visual Studio中查看Visual Tree#1,158 - 使用指令进行管理,第一部分#1,159 - 使用指令进行管理,第二部分

视窗


#195 - 尊敬的MessageBox#196 - 从MessageBox返回结果#613 - 窗口事件序列#614 - 在Windows之间切换时触发的事件#660 - 在Windows 8中更改双击速度#1,032 - 在Windows任务栏图标上显示进度#1,195 - 使窗口部分透明#1,196 - 使窗户完全透明

XAML


#56 - XAML#57 - 标记与代码#58 - 使用XAML的其他地方#59 - Visual Studio 2010中的XAML#60 - Expression Blend中的XAML#61 - 从Expression Design导出XAML#62 - BAML是编译的XAML#65 - XAML词汇表#66 - XAML元素映射到.NET类型的实例#67 - XAML属性映射到属性值#68 - 嵌套XAML元素表达遏制#69 - Internet Explorer可以直接解释XAML#70 - 在XAML中指定事件处理程序#71 - XAML文件具有单个根元素#72 - XAML命名空间#73 - 使用前缀的多个命名空间#74 - 属性元素语法#75 - 有时你必须使用属性元素语法#76 - XAML中的两种元素#77 - XAML集合语法#78 - 通过设置子元素设置内容属性的值#79 - 常见WPF类型的内容属性#80 - 内容属性和集合语法Express UIElement Containment#81 - XAML区分大小写#82 - XAML如何处理空白#83 - 只读与读写属性的集合语法#84 - 将可重用对象存储在资源字典中#85 - 每个WPF XAML文件中使用的两个主要命名空间#86 - 类属性指向您的代码 - 背后#87 - 类型转换器#92 - 标记扩展#93 - 使用属性元素语法指定标记扩展#94 - 命名元素#95 - x:名称与名称#96 - 常见的XAML命名空间属性#97 - 附加属性#98 - WPF中附加属性的工作原理#99 - 在XAML中创建自定义对象#100 - 松散的XAML文件#101 - Visual Studio对您的XAML执行的操作#102 - 使用XamlReader加载松散的XAML文件#103 - XAML 2009#104 - 使用FindName查找控件的命名子级#105 - 将BAML视为XAML#106 - 将属性值设置为指向另一个对象#107 - XAML命名空间中的标记扩展

Below is a list of all posts created so far for the?2,000 Things You Should Know About WPF?blog.

Total number of posts = 1,201

Animation


#7 ? Property-Based Animation#686 ? Using Animation to Make an Image Pulse#777 ? Animating a Transform#778 ? Animating a Scale Transform#779 ? Animating a Rotation Transform#1,164 ? Using Animation to Bounce a Control

Basics


#1 ? What is WPF?#2 ? Rendering Tiers#5 ? Vector Graphics and Resolution Independence#6 ? WPF Layout#9 ? Styles#10 ? Control Templates#11 ? Commands#12 ? Markup and Code Behind#13 ? Benefits of Markup#14 ? Page-Based Navigation#15 ? WPF vs. Silverlight and ASP.NET#16 ? Use Direct3D for Hard-Core 3D Applications#17 ? WPF Release History#18 ? Silverlight and WPF Differences#19 ? The System.Windows Namespace#20 ? Standalone and Browser-Hosted Applications#23 ? WPF Units#26 ? WPF Architecture#30 ? Visual Class#31 ? UIElement Class#32 ? FrameworkElement#33 ? Control Class#36 ? Five Types of WPF Applications#38 ? The Application Class#39 ? The Window Class#40 ? Application Lifetime#41 ? Window Events at Startup and Shutdown#42 ? WPF Application Entry Point#43 ? What Happens in WPF Main() Function#44 ? Application is a Singleton#45 ? Two Ways to Create WPF Controls#46 ? Processing Command Line Arguments in a WPF Application#47 ? Detecting When the Windows Session Is Ending#48 ? Handling an Application’s Exit Event#49 ? Unhandled Exceptions#50 ? Application-Scoped Properties#51 ? Resources#52 ? Defining and Using Application-Scoped Resources#53 ? Accessing Application-Scoped Resources from Code#54 ? An Application’s Main Window#55 ? Application.ShutdownMode#63 ? Three Places to Make Changes#64 ? Visual Studio Creates XAML For You#108 ? The Logical Tree#109 ? Navigating the Logical Tree in Code#110 ? An Application for Viewing a WPF Logical Tree#111 ? The Visual Tree#112 ? Navigating the Visual Tree in Code#113 ? An Application for Viewing a WPF Visual Tree#114 ? How Dependency Properties Are Implemented#116 ? Dependency Property Values Are Stored in the DependencyObject#117 ? Registering a Dependency Property#118 ? Don’t Add Code to Dependency Property Getter/Setter#119 ? Read and Write Dependency Property Values from XAML or Code#120 ? Clearing a Dependency Property Value#121 ? Being Notified When the Value of a Dependency Property Changes#122 ? Validating a Dependency Property#123 ? Coercing a Dependency Property#124 ? One Example of WPF’s Use of Dependency Property Callbacks#125 ? Responding to Changes in Dependency Properties for WPF Objects#127 ? Reacting to a Dependency Property Change Using Triggers#129 ? Properties Changed by Triggers Are Automatically Reset#130 ? WPF Supports Three Types of Triggers#131 ? Dependency Properties Inherit Values from Higher Up in the Logical Tree#132 ? Inherited Property Values Pass Through All Elements#168 ? A More Complete Class Hierarchy#169 ? The Base Element Classes#170 ? Functionality That The Base Element Classes Provide#171 ? Other Base Classes ? Freezable and Animatable#173 ? You Can Put Freezable Objects Into a Read-Only State#175 ? Freeze Graphical Objects That You Don’t Intend to Modify#176 ? Two Kinds of Templates#197 ? Override Application Class Methods for Standard Events#198 ? Creating and Showing Additional Windows#199 ? An Application’s Windows Property Lists All of Its Windows#200 ? Parent/Child Relationships Between Windows#201 ? Showing a Modal Dialog Using ShowDialog#202 ? An Example of Modal/Modeless Dialogs#203 ? Window Size and Location Are Specified in Device Independent Units#204 ? Detecting Key Presses in a WPF Window#205 ? The WPF GUI Pipeline#206 ? WPF Applications Use an Event-Driven Paradigm#610 ? Application Event Sequence#611 ? Set Application Exit Code in Exit Event Handler#612 ? Application Event Sequence for Page-Based Applications#759 ? Device-Independent Units (DIPs)#1,098 ? OnLastWindowClose Shutdown Mode#1,099 ? OnMainWindowClose Shutdown Mode#1,100 ? OnExplicitShutdown Shutdown Mode#1,101 ? Defining a Handler for Unhandled Exceptions#1,102 ? Shutting Application Down after Handling Unhandled Exception#1,105 ? Using Application’s Windows Collection to Interact with Other Windows

Blend


#185 ? Creating a WPF Application Using Blend#186 ? When to Use Blend (vs. Visual Studio)#188 ? Adding Controls to a Window Using Blend#190 ? Adding an Event Handler to a Control Using Blend#192 ? Setting a Control’s Properties Using Blend#193 ? You Can Have a Project Open in Blend and Visual Studio at the Same Time#194 ? Hello WPF World, Love Blend#287 ? Adding Controls to a Window in Blend by Editing XAML#289 ? Editing WPF Code-Behind in Blend#295 ? Blend Provides Intellisense#414 ? Creating a Grid in Expression Blend#427 ? Changing Margins from Within Blend#428 ? Setting Other Layout Properties from Within Blend#433 ? Preservation of Margins While Editing Grid in Blend#434 ? Canvas Layout Mode in Blend#511 ? Blend Basics ? The Tools Panel#512 ? Areas of the Screen in Blend#513 ? Using the Selection Tool in Blend#514 ? Different Ways to Select Objects in Blend#515 ? Zooming In and Out on the Artboard#516 ? Drawing a Path in Blend with the Pen Tool#517 ? XAML Output when Drawing with the Pen Tool#518 ? Change Points in a Path Using the Direct Selection Tool#519 ? Adding Points to an Existing Path#520 ? Drawing a Path with the Pencil Tool#521 ? Pen and Pencil Tools Both Generate Path Elements#522 ? Keyboard Shortcuts in Blend#523 ? Panning the Artboard in Blend#524 ? Using the Zoom Tool to Zoom on the Artboard#525 ? Use the Eyedropper Tool to Copy Colors#527 ? Colorful Expression Add-in Connects to Adobe Kuler#528 ? Using the Eyedropper Tool in the Color Editor#529 ? Using the the Paint Bucket Tool to Copy Attributes#530 ? Creating a Linear Gradient in Blend#531 ? Adjusting a Gradient Using the Gradient Tool#532 ? Using the Gradient Tool to Move Gradient Stops#533 ? Using the Gradient Tool to Modify a Radial Gradient#534 ? Drawing Shapes with the Shape Tools in Blend#535 ? Drawing Symmetrical Shapes in Blend#536 ? Adding Layout Panels Using the Tools Panel in Blend#537 ? Changing a Layout Panel to a Different Type#538 ? XAML End Tags Are Automatically Added as Needed in Blend#539 ? Adding Text-Based Elements in Blend#540 ? Adding Common Controls in Blend#541 ? Adding Elements from The Assets Panel in Blend#542 ? Most Recently Used Asset#543 ? Searching for Controls in the Assets Panel#544 ? Objects and Timeline Panel Shows the Logical Tree#545 ? Locking Objects to Prevent Changes#546 ? Adding Gradient Stops in Blend#547 ? Specifying Colors by Name in Blend#548 ? Change the Offset of a Gradient Stop in Blend#549 ? More Colors Than You Know What to Do With#550 ? Converting a Brush into a Resource in Blend#551 ? Resources Are Listed under the Resources Tab in Blend#552 ? Setting a Property to Use an Existing Resource#553 ? Setting an Alpha Value in Blend#554 ? Using an Opacity Mask#555 ? Creating a Radial Opacity Mask#558 ? Reversing a Gradient Using Blend#559 ? Drawing a Masked Gradient in Blend#565 ? Workaround for Inability to Scroll ScrollViewer in Design Mode in Blend#566 ? Setting Properties of an Effect in Blend#567 ? Setting Layout Related Properties in Blend#568 ? Setting Text-Related Properties in Blend#569 ? Setting Transforms from within Blend#570 ? Use Blend to Search for Properties#571 ? Moving Windows Around in Blend#572 ? You Can Move Windows Outside of the Blend GUI#573 ? Workspaces in Blend

Brushes


#556 ? Clipping to a Border Using an Opacity Mask#557 ? Using an Image As an Opacity Mask#560 ? Using a Radial Gradient to Create a 3D Effect

Commands


#342 ? Binding a Button to a Command#343 ? Associating Multiple Controls with the Same Command#344 ? The CommandBinding CanExecute Event Determines Whether a Button is Enabled#345 ? WPF Command Model is Preferred over Traditional Event Handler Model#346 ? No Need to Set Header Property for MenuItem When Using Commands#347 ? How to Set Content Property for Button Based on Command#348 ? Predefined Command Objects, Part I#349 ? Predefined Command Objects, Part II#1,078 ? Defining a Command Binding Using Lambda Expressions#1,079 ? Executing a Command Programmatically#1,080 ? Command Text for Preexisting Commands Is Automatically Localized#1,081 ? Adding CommandBinding to Top-Level CommandBindings#1,082 ? Adding CommandBindings to Individual UI Elements#1,083 ? Setting CommandBindings in XAML#1,084 ? A KeyBinding Binds a Command to a Key#1,085 ? Input Bindings Don’t Require that Element Binds to Command#1,086 ? Defining a Key Binding in XAML#1,087 ? Associating a Key Binding with Multiple Modifier Keys#1,091 ? Using a CommandTarget to Change the Source of a Routed Command#1,092 ? An Example of Using a CommandTarget#1,093 ? Intercepting a Command Before It Executes#1,095 ? Creating and Using a Custom Command#1,096 ? The RoutedUICommand Adds a Text Property#1,097 ? Getting Items in Context Menu to Correctly Use Command Binding#1,199 ? Complete WPF Command Example

Controls


#21 ? WPF Control Sampler#22 ? Layout Controls#27 ? Class Hierarchy#28 ? DispatcherObject#34 ? ContentControl#35 ? ItemsControl#177 ? A Content Presenter Is a Placeholder for a Content Control’s Content#178 ? A Control Can Have Both a Control Template and A Data Template#179 ? Panel Controls Contain UIElement Children#207 ? Setting a Control’s Background Color#209 ? Specifying a Color Where a Brush Is Expected in XAML#243 ? Display Text Using a Label Control#244 ? Use a TextBlock Element for Richer Formatting#245 ? Easily Inline Text Formatting Codes with TextBlock Control#246 ? Use FlowDocument Control to Host Entire Documents#247 ? Types of Blocks that You Can Use in a FlowDocument#248 ? Creating a List in a FlowDocument#249 ? Creating a Table in a FlowDocument#250 ? Including a Section Block in a FlowDocument#251 ? Embedding an UIElement Within a FlowDocument#252 ? FlowDocument Flows its Content Automatically#253 ? FlowDo



友情链接: