以下列出了迄今为止为WPF博客所知的2,000件事所创建的所有帖子。
帖子总数= 1,201
动画
基本
混合
刷
命令
- #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 - 在禁用面板中有选择地启用子元素
数据绑定
依赖属性
活动
字体
图像
- #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 - 在控制模板中使用自定义循环进度形状
输入
布局
- #180 - 布局如何工作
- #319 - StackPanel堆栈垂直或水平控制
- #320 - StackPanel子控件的默认大小
- #321 - HorizontalAlignment和VerticalAlignment
- #322 - 为StackPanel子控件提供显式大小
- #323 - 使用保证金在StackPanel儿童周围提供空间
- #324 - 在每个边缘设置不同大小的边距
- #325 - 在代码中指定保证金价值
- #326 - 使用两个参数指定对称边距
- #327 - 使用填充在控件中提供额外空间
- #329 - WPF中的布局原则
- #330 - HorizontalContentAlignment和VerticalContentAlignment
- #331 - HorizontalContentAlignment和VerticalContentAlignment的默认值
- #332 - HorizontalContentAlignment和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 - 使用HorizontalAlignment和VerticalAlignment在网格中定位子元素
- #412 - 在网格中设置行高或列宽的三种方法
- #415 - 将网格行高度和列宽属性设置为绝对值
- #416 - 将网格行和列设置为自动调整大小
- #417 - 使用星形大小在行或列之间均匀分布空间
- #418 - 星形大小允许相对于彼此设置行和列大小
- #419 - 使用星形大小时如何计算单元格大小
- #420 - 您可以使用浮点值进行星号调整
- #421 - 网格中的HorizontalAlignment,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如何影响HorizontalContentAlignment
- #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,197 - 在具有最大大小的网格中自动调整大小
- #1,201 - 如何分享星级柱尺寸
本土化
- #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 - 本地化其他内容
媒体
杂
安全
样式
视觉工作室
视窗
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
Basics
Blend
Brushes
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 – FlowDocument is Hosted in a FlowDocumentReader Automatically
- #254 – Types of Containers for Hosting a FlowDocument
- #255 – Flow Text Around an Image in a FlowDocument
- #256 – Use a FixedDocument to Display Content at Fixed Locations
- #257 – TextBox Control Allows Basic Text Entry and Editing
- #258 – RichTextBox Allows Richer Formatting than TextBox
- #259 – Setting Typography Properties for Text Rendered with an OpenType Font
- #267 – Think Twice Before You Subclass a Control
- #269 – Automatically Sizing a Window to Fit Its Contents
- #270 – Minimum and Maximum Window Size
- #271 – Changing a Window’s Resize Behavior
- #272 – Displaying a Border Around a Window
- #273 – Display a Picture Using an Image Control
- #274 – Embed Images into Your Project as Binary Resources
- #275 – Load a Loose Image File into an Image Control
- #276 – Change Image Sizing Using the Stretch Property
- #277 – Images May Have Embedded DpiX and DpiY Information
- #278 – Allow an Image to Get Bigger, But Not Smaller (or Vice Versa)
- #279 – Adding a Border Around an Image Control
- #280 – Alignment Properties for an Image
- #281 – Give an Image Control More Room with a Margin
- #282 – The Margin Property Stores a Thickness Value
- #283 – A Window Can Have Only a Single Child Element
- #284 – Making an Image Translucent Using the Opacity Property
- #285 – Rotating an Image
- #286 – Adding Controls to a Window in Visual Studio by Editing XAML
- #296 – Controls that Derive from the Control Class
- #297 – Create a Mirror Image of a Control or Image
- #298 – Button Basics – Content and Click
- #299 – Controls Do Not Need a Name
- #300 – Button is a ContentControl
- #301 – Using Access Keys
- #302 – Access Keys for Controls that Don’t Have a Caption
- #303 – Define an Access Key for a Control Using an Underline
- #304 – Defining an Access Key That Gives Focus to a Different Control
- #305 – Guidelines for Defining Access Keys
- #306 – Keyboard Focus
- #307 – Giving Focus to a Control When an Application Starts
- #308 – Checking to See Which Control Has Keyboard Focus
- #309 – Keyboard Focus vs. Logical Focus
- #310 – Give a Control Logical Focus
- #311 – Giving Focus to a Control, Part II
- #312 – Specify a Default Button in a Window
- #313 – Specify a Cancel Button in a Window
- #314 – Typical Usage for Default and Cancel Buttons
- #315 – Setting IsDefault and IsCancel to the Same Button
- #316 – Changing the ClickMode of a Button
- #317 – Label Basics
- #318 – TextBox Basics
- #328 – Controls that Make Use of the Padding Property
- #338 – Setting a Control’s Foreground Color
- #339 – Wrapping a Button’s Text Content to Multiple Lines
- #340 – Create a Button with an Image
- #341 – Create a Button with an Image and Text
- #350 – CheckBox Basics
- #351 – Binding a CheckBox’s IsChecked Property to a Boolean Variable
- #352 – Use IsThreeState Property to Create a CheckBox that Has an Indeterminate State
- #353 – Binding a Three-State CheckBox to a Nullable Bool
- #354 – Use Three-State CheckBox to Show State of Other CheckBoxes
- #355 – Implementing Three-State CheckBox Dependent Behavior
- #356 – RadioButton Basics
- #357 – RadioButton is a ContentControl
- #358 – Binding a RadioButton to an Enumerated Type
- #359 – ToggleButton Basics
- #360 – Binding a ToggleButton’s IsChecked Property to a Boolean Variable
- #361 – Creating a ToggleButton Whose Content Is an Image
- #362 – Changing the Text on a ToggleButton When a User Clicks On It
- #363 – Calendar Control Basics
- #364 – Allowing a User to Select Multiple Dates in a Calendar Control
- #365 – SelectedDate and SelectedDates Properties of Calendar Control
- #366 – Binding a Calendar Control’s SelectedDate Property to a Nullable DateTime
- #367 – You Can’t Bind to a Calendar Control’s SelectedDates Property
- #368 – Specifying Blackout Dates in a Calendar Control
- #371 – Specifying a Default Date for a Calendar Control to Display
- #372 – Defining Tooltips for GUI Elements
- #373 – Creating More Complex Tooltips
- #374 – Using a Tooltip to Display the Full Contents of a TextBox
- #375 – Binding Something in a Tooltip to a Property on the Parent Control
- #376 – Getting Text to Wrap in a Tooltip
- #377 – Reuse Tooltips by Defining Them as Resources
- #378 – Positioning Tooltips
- #379 – Using a Tooltip As a Magnifier
- #380 – The Frame Control Can Host Web Content
- #381 – Loading .rtf Files Into a RichTextBox
- #382 – Persisting RichTextBox Contents as XAML
- #406 – Creating New Controls by Layering One on Top of Another
- #435 – Use Border Element to Draw Border Around Elements
- #436 – Using a Drop Shadow with a Border
- #437 – Showing Rounded Corners on a Border
- #438 – Border Element Can Have a Background
- #439 – Using a DropShadow with a Border, part II
- #474 – Hiding a ComboBox Selection Highlight When the Mouse Moves off Item
- #481 – You Can Draw On an InkCanvas Control with the Mouse
- #482 – You Can Include Other Controls Inside an InkCanvas
- #483 – InkCanvas MinHeight and MinWidth
- #484 – InkCanvas Contains a Collection of Strokes
- #486 – InkCanvas Supports Different Editing Modes
- #487 – Specify DrawingAttributes When Drawing to an InkCanvas
- #488 – You Can Change Drawing Attributes of Existing Strokes in an InkCanvas
- #489 – Using the InkCanvas to Recognize Gestures, part I
- #490 – Using the InkCanvas to Recognize Gestures, part II
- #491 – Displaying a Hyperlink
- #493 – Setting the Visibility of a User Interface Element
- #499 – Interacting with the Control That Initiated an Event
- #504 – GroupBox Basics
- #505 – The Header of a GroupBox Can Be Anything
- #506 – Using a ComboBox as GroupBox Header
- #507 – Expander Control Lets you Expand/Collapse a Set of Controls
- #508 – Displaying a Spinning Busy Indicator
- #509 – Displaying a Busy Indicator in a Data Template
- #510 – The Header of an Expander Can Be Anything
- #577 – You Can Change DockPanel.Dock Property at Runtime
- #623 – Focusable Property Indicates Whether a Control Can Receive Focus
- #634 – Modifying Text in the TextChanged Event
- #639 – Default Tab Order Is Sensible
- #640 – Set the TabIndex Property to Change Tab Order
- #641 – The Difference Between IsTabStop and Focusable
- #642 – Focusable and IsTabStop in Combination
- #643 – Disabled Controls Cannot Get Focus
- #644 – Disabling and Hiding Controls
- #663 – How IsMouseOver Works for Nested Elements
- #715 – Using the Thumb Control to Drag Objects on a Canvas
- #716 – Using a Border As a Visual Indication That a Control Can Be Dragged
- #725 – Make Use of the Extended WPF Toolkit
- #726 – Sample Controls from the Extended WPF Toolkit
- #809 – You Can Use a Brush for a Control’s Background
- #810 – Setting Foreground and Background Properties from Code
- #811 – Setting Color Values in Code Based on System Colors
- #812 – Use TextDecorations Property to Underline or Strike Through Text
- #813 – Applying TextDecorations in the Middle of a Block of Text
- #828 – ListView and GridView Data Binding Example
- #833 – CheckBox is a ContentControl
- #834 – Displaying Custom Content on a TabControl’s Tabs
- #835 – Displaying Custom Content in a GroupBox Header
- #836 – Setting a ContentControl’s Content to a CLR Object
- #837 – A Window Cannot Be a Child of a ContentControl
- #838 – Using a Label’s Access Key to Give Focus to Another Control
- #839 – A Label’s Target Could Have Its Own Label
- #840 – Access Keys Should Be Unique within A Window
- #841 – Display Underlines for Access Keys at All Times
- #842 – The Differences Between Label and TextBlock
- #843 – Text Justification in a TextBlock
- #844 – The TextBlock Supports Hyphenation
- #845 – Display Ellipsis in TextBlock to Indicate that Content Doesn’t Fit
- #846 – Including an Underscore Character in a Label
- #847 – Default Button Behavior Depends on Focus
- #848 – IsDefaulted vs. IsDefault for a Button
- #849 – You Can Hold a RepeatButton Down
- #850 – Specifying a Delay and Interval for a RepeatButton
- #851 – Using RepeatButtons to Move Something
- #852 – Setting a Three-State CheckBox to an Indeterminate Value
- #853 – A CheckBox Can Always Be in an Indeterminate State
- #854 – Clicked vs. Checked/Unchecked Events for CheckBox
- #855 – RadioButtons Are Grouped Based on their Container
- #856 – Placing RadioButtons in a GroupBox
- #857 – Manually Grouping RadioButtons
- #858 – How to Set Properties for a Tooltip
- #859 – Changing the Amount of Time That a ToolTip Is Shown For
- #860 – Making a Tooltip Partially Transparent
- #861 – Tooltip Delays and Timing
- #862 – Changing Default Tooltip Delay for all Applications
- #863 – Tooltips Are Normally Not Shown when a Control Is Disabled
- #864 – Changing the Look of a ToolTip with a Control Template
- #865 – ToolTip Can Extend Beyond Window Boundaries
- #866 – Displaying a Popup Window
- #867 – Controlling Whether a Popup Is Open Using Data Binding
- #868 – A Popup Stays Open By Default
- #869 – Don’t Leave a Popup Window Open
- #870 – Popup Is a ContentControl
- #871 – Popup Control Automatically Sizes to Fit Its Content
- #872 – Animating a Popup
- #873 – Using a Popup Rather than a Tooltip
- #874 – Setting the Background for a Popup
- #875 – Popup Control Doesn’t Require a Border
- #876 – Default Popup Placement
- #877 – Placing a Popup Relative to Another Control
- #878 – Options for Positioning a Popup Relative to Another Control
- #879 – Positioning a Popup Relative to the Mouse
- #880 – Adding an Offset When Positioning a Popup
- #881 – Positioning a Popup Relative to an Arbitrary Rectangle
- #882 – Popup Placement at Screen Boundaries
- #883 – ScrollViewer Is a ContentControl
- #884 – Making a StackPanel Scroll More Intelligently
- #885 – Wrapping a Grid in a ScrollViewer
- #886 – Wrapping a Canvas in a ScrollViewer
- #887 – The Difference between Disabled and Hidden Scrollbar Visibility
- #888 – Different Ways to Scroll Content in a ScrollViewer
- #889 – Scrolling a ScrollViewer from Code
- #890 – Bringing a Control into View within a ScrollViewer
- #891 – Changing the Border of a GroupBox
- #892 – Changing the Font for Everything within a GroupBox
- #893 – Creating a GroupBox with a Border But No Header
- #894 – Creating a GroupBox with a Header But No Border
- #895 – Adding a Watermark to a GroupBox
- #896 – A TabControl Groups Content into a Series of Pages
- #897 – Content on a TabItem Does Not Automatically Wrap
- #898 – Setting the Text that Appears on a TabItem
- #899 – Displaying Multiple Controls on a TabControl’s Tabs
- #900 – Changing the Font Used in a TabControl
- #901 – Scrolling Content within a TabControl
- #902 – The TabControl Automatically Creates Multiple Rows of Tabs
- #903 – Placing Tabs on Different Sides of a TabControl
- #904 – Placing RadioButtons in a TabControl
- #905 – Executing Some Code when a User Changes Tabs on a TabControl
- #906 – Programmatically Changing the Current Tab on a TabControl
- #907 – Binding a TabControl to a List of Objects, part I
- #908 – Binding a TabControl to a List of Objects, part II
- #909 – Binding a TabControl to a List of Objects, part III
- #910 – Using Data Binding to Control the Currently Selected Tab of a TabControl
- #911 – Use ItemTemplate to Control Content on Tabs
- #912 – Expanding an Expander Will Trigger Layout
- #913 – Changing the Direction that an Expander Expands
- #914 – Drawing a Border Around an Expander
- #915 – Delaying Generation of Expander Content
- #916 – Scrolling Content within an Expander Control
- #917 – Changing Something when an Expander Is Expanded
- #918 – Limiting How Much Text a User Can Enter into a TextBox
- #919 – Changing the Border of a TextBox
- #920 – TextBox Sizes to Fit Its Content
- #921 – Keyboard Shortcuts Available in a TextBox Control
- #922 – Mouse Shortcuts Available in a TextBox Control
- #923 – Text Wrapping in a TextBox
- #924 – TextBox Wrap vs. WrapWithOverflow
- #925 – Scrolling Through TextBox Text That Doesn’t Wrap
- #926 – Text Containing Embedded Carriage Returns Wraps Automatically
- #927 – Limiting the Size of a TextBox
- #928 – TextBox.MinLines Doesn’t Size Properly on Startup
- #929 – Allowing Multiline Input in a TextBox
- #930 – LineCount Property Indicates Number of Lines in TextBox
- #931 – Scrolling Text in a TextBox from Code
- #932 – Making a TextBox Read-Only or Disabled
- #933 – Cut/Copy/Paste Functionality in a TextBox
- #934 – TextBox Has Built-In Undo Functionality
- #935 – Setting an Undo Limit for a TextBox
- #936 – TextBox Properties that Reflect Currently Selected Text
- #937 – Selecting Text in a TextBox from Code
- #938 – Changing the Selected Text Color in a TextBox
- #939 – Retrieving Individual Lines of Text from a TextBox
- #940 – Easy Selection of Entire Words in a TextBox
- #941 – Forcing Uppercase or Lowercase in a TextBox
- #942 – Text Justification in a TextBox
- #943 – Turning on Spell Checking within a TextBox
- #944 – Entering Special Characters into a TextBox
- #945 – A Strategy for Limiting Allowed Text in a TextBox
- #947 – Intercepting Paste Operations in a TextBox
- #948 – Complete Example of Limiting TextBox Input
- #949 – Add a Custom Dictionary for Spell Checking in a TextBox
- #950 – PasswordBox Allows Entering a Password
- #957 – A Survey of Some List-Based Controls
- #958 – Three Ways to Populate a List Control
- #959 – ListBox Basics
- #960 – A ListBox Can Store Objects of Different Types
- #961 – A ListBox Has Three Available Selection Modes
- #969 – Items Property of ListBox Contains List of Items
- #970 – Avoid Working Directly with Items Collection
- #971 – Items Property is a Content Property
- #972 – How ListBox Items Are Rendered
- #973 – Keyboard Shortcuts for a ListBox
- #974 – Properties for Retrieving Selected Items in a ListBox
- #975 – SelectedValue and SelectedValuePath for a ListBox
- #976 – SelectedItem Binding on an ItemsControl is Two-Way
- #977 – DisplayMemberPath Indicates Property to Use for Displaying Bound Items
- #978 – Discovering Whether an Item in a ListBox Is Selected
- #979 – Selecting Items in a ListBox Programmatically
- #980 – Binding ListBox Selection to Property on Bound Object
- #981 – Including a CheckBox with Each Item in a ListBox
- #982 – Executing Code When Selected Items in a ListBox Change
- #983 – Using a CollectionViewSource to Sort Items in a ListBox
- #984 – Grouping Items in a ListBox with a CollectionViewSource
- #985 – Displaying Expandable Groups within a ListBox
- #986 – Filtering a ListBox Using a CollectionViewSource
- #987 – CollectionViewSource Updates on Refresh or Change to Collection
- #988 – Enabling Live Sorting in a CollectionViewSource
- #989 – Enabling Live Filtering in a CollectionViewSource
- #990 – Typing Text to Select an Item in a ListBox
- #991 – Specifying which Field Is Used for Finding an Item by Typing
- #992 – Scrolling an Item in a ListBox into View
- #993 – Default Control Template for a ListBox
- #995 – ListBox Uses UI Virtualization by Default
- #996 – Turning off UI Virtualization in a ListBox
- #998 – Orient a ListBox Horizontally
- #999 – Using a Canvas as the Items Panel for a ListBox
- #1,000 – Displaying the Contents of a ListBox in a Circle
- #1,001 – Setting an Alternating Background Color in an ItemsControl
- #1,002 – Using Larger Values for AlternationCount in an ItemsControl
- #1,003 – Set CanContentScroll to False for Smooth Scrolling in a ListBox
- #1,004 – Setting CanContentScroll Disables Virtualization
- #1,005 – Enabling Deferred Scrolling for Better Performance
- #1,006 – Scrollbars in a ListBox Appear as Needed
- #1,007 – Changing Scrollbar Settings for a ListBox
- #1,008 – ComboBox Basics
- #1,009 – ComboBox Data Binding Basics, Part I
- #1,010 – ComboBox Data Binding Basics, Part II
- #1,011 – ComboBox Data Binding Basics, Part III
- #1,012 – Using a Different Data Template for the Face of a ComboBox
- #1,013 – Typing Text to Select an Item in a ComboBox
- #1,014 – Typing Text to Select an Item in a ComboBox, Part II
- #1,015 – Typing Text to Select an Item in a ComboBox, Part III
- #1,016 – Displaying a Collection of Items in a WrapPanel
- #1,017 – Scaling Items in a List Using a Slider
- #1,018 – Slider Basics
- #1,019 – Constraining a Slider to Integer Values
- #1,020 – Displaying Tick Marks on a Slider
- #1,021 – Two Ways to Position Tick Marks on a Slider
- #1,022 – Render Tick Marks in a Different Color
- #1,023 – Displaying a Tooltip that Shows the Value of a Slider
- #1,024 – Making a Slider Cycle through Values of an Enumerated Type
- #1,025 – Small and Large Changes to the Value of a Slider
- #1,026 – Horizontal and Vertical Sliders
- #1,027 – Displaying a Subrange on a Slider
- #1,028 – ProgressBar Basics
- #1,029 – Simple ProgressBar Example
- #1,030 – Displaying an Indeterminate Progress Bar
- #1,031 – Update a ProgressBar from a Background Thread
- #1,033 – ProgressBar Can Be Horizontal or Vertical
- #1,034 – Limiting the Range of Selectable Dates in a Calendar
- #1,035 – DatePicker Basics
- #1,036 – Date Formats in the DatePicker Control
- #1,037 – Entering Text Manually into a DatePicker
- #1,038 – Another Way to Prevent Certain Dates from Being Selected
- #1,039 – Intercepting Bad Date Strings Entered into a DatePicker
- #1,043 – Using a DockPanel as the Items Panel for a ListBox
- #1,088 – Removing Key Bindings
- #1,089 – Adding a Parameter to a Command
- #1,090 – Sender vs. Source in CommandBinding Event Handlers
- #1,094 – Disabling Editing Operations in a TextBox
- #1,135 – Alternatives to Creating a Custom Control
- #1,136 – WPF Controls Are Lookless
- #1,141 – Attached Properties Allow Customization of Existing Controls
- #1,142 – Setting Attached Property Value from Code
- #1,143 – Coordinate System for StreamGeometry
- #1,144 – Geometry in Custom Shape Doesn’t Automatically Scale
- #1,145 – Using RenderSize in Custom Shape
- #1,163 – Make an Image Clickable with a Control Template
- #1,177 – UIElement vs. FrameworkElement vs. Control
- #1,178 – Custom Element Based on FrameworkElement
- #1,179 – Alignment and Margin Properties for a Custom FrameworkElement
- #1,180 – By Default, FrameworkElement Doesn’t Have Desired Size
- #1,181 – Custom Element Indicates Desired Size in MeasureOverride
- #1,182 – Using RenderSize Properties in Custom Elements
- #1,183 – Where Data Templates Are Used
- #1,184 – Where Data Templates Are Used, part II
- #1,185 – ItemsControl Customization Summary
- #1,186 – Default ItemContainerStyle for a ListBox
- #1,187 – Using an ItemContainerStyle to Change Items in an ItemsControl
- #1,188 – Using an ItemContainerStyle to Animate Items in an ItemsControl
- #1,189 – MeasureOverride Input and Output
- #1,190 – VisualChildrenCount and GetVisualChild
- #1,191 – Custom Element with a Single Child Element
- #1,192 – Calling Arrange on Child Elements
- #1,193 – MeasureOverride and Margins
- #1,194 – DesiredSize of Child Elements Includes Margins
- #1,198 – Selectively Enabling Child Elements in a Disabled Panel
Data Binding
- #25 – Data Binding Overview
- #126 – Reacting to a Dependency Property Change Using Binding
- #369 – Binding a Label’s Content to the Current Date and Time
- #370 – Binding a Label’s Content to the Current Date and Time, part II
- #395 – Rich ListBox Content using Data Binding, part I
- #396 – Rich ListBox Content Using Data Binding, part II
- #397 – Rich ListBox Content Using Data Binding, part III
- #485 – Binding a ComboBox to an Enumerated Type’s List of Values
- #494 – Using a Value Converter to Bind to a Visibility Property
- #495 – Binding to a Visibility Property Without Using a Value Converter
- #635 – Using a Value Converter to Change User Input
- #825 – Two Way Binding for a CheckBox
- #964 – ListBox Data Binding Basics, Part I
- #965 – ListBox Data Binding Basics, part II
- #966 – ListBox Data Binding Basics, part III
- #967 – ListBox Data Binding Basics, part IV
- #968 – ListBox Data Binding Basics, part V
- #1,137 – Value Converter Basics
- #1,138 – Value Converter Example for Output
- #1,139 – Value Converter Example for Input
- #1,140 – Using a Value Converter in a Template
Dependency Properties
Events
- #500 – Sharing an Event Handler Across Multiple Controls, Method I
- #501 – Sharing an Event Handler Across Multiple Controls, Method II
- #502 – Sender vs. RoutedEventArgs.Source
- #503 – Be Careful When Casting RoutedEventArgs.Source
- #576 – How (Traditional CLR) Events Work
- #579 – Adding an Event Handler for a User Interface Element
- #580 – Events in WPF are Routed
- #581 – An Example of a Routed Event
- #582 – Events Are Routed Even When a Handler is Not Defined
- #583 – Interrupting the Routing Process
- #584 – Handling an Event That Has Already Been Handled
- #585 – Tunneling Events Propagate Down the Logical Tree
- #586 – Bubbling and Tunneling Events Are Typically Paired
- #587 – The Purpose of Tunneling and Bubbling Events
- #588 – If You Handle PreviewKeyDown Event, KeyDown Won’t Fire
- #589 – Standard Tunneling/Bubbling Event Pairs
- #590 – Not All Routed Events Exist in Pairs
- #591 – You Can Attach Any Routed Event to Any Control
- #592 – Adding an Event Handler in Code
- #593 – AddHandler Method Can Add Handler for Any Event
- #594 – Routed Events Under the Covers
- #595 – Syntax Choices for Defining an Event Handler
- #596 – Using Lamba Expressions When Declaring Event Handlers
- #597 – Naming Conventions for Event Handlers
- #598 – Three Flavors of Routed Events
- #599 – A Complete Example of a Routed Event
- #600 – Registering a Routed Event
- #601 – The RoutedEventHandler Delegate Type
- #602 – Accessing Information in RoutedEventArgs
- #603 – Sender, Source and OriginalSource Example
- #604 – Defining a New Routed Event
- #605 – Using Subclasses of RoutedEventArgs
- #606 – Reusing an Existing Routed Event in Your Class
- #607 – An Instance Handler vs. A Class Handler
- #608 – Class Handlers Are Invoked Before Instance Handlers
- #609 – Perform Initialization in Window.Loaded Handler
- #615 – Standard Object Lifetime Events for FrameworkElement Objects
- #616 – FrameworkElement.Initialized and Loaded Event Order
- #617 – Input Events
- #618 – Keyboard Event Summary
- #619 – Event Sequence for the Key Up/Down Events
- #620 – Why Are There So Many KeyPress Events?
- #621 – An Example of Handling Preview Keypress Events
- #622 – The Source of a Keyboard Event
- #624 – Information Available to Key Up/Down Events
- #625 – Converting a Keypress Timestamp to a DateTime
- #626 – Key Up/Down Sequence When Using CTRL Key
- #627 – Detecting Whether The Ctrl Key Is Pressed In a KeyDown Event Handler
- #628 – Key Up/Down Sequence When Using ALT Key
- #629 – Some Controls May Swallow Keypress Events
- #628 – Key Up/Down Sequence When Using ALT Key
- #629 – Some Controls May Swallow Keypress Events
- #630 – PreviewTextInput and TextInput Events
- #631 – Event Sequence for KeyPressUp, KeyPressDown and TextInput
- #632 – Block Input Using PreviewTextInput
- #633 – TextChanged Event Fires After TextBox Text Has Changed
- #636 – Keyboard Events that Fire When A Key Is Held Down
- #637 – Block Repeating Keys by Setting Handled to true
- #638 – PreviewTextInput Is Not Fired In Many Cases
- #645 – Checking for the Presence of Modifier Keys
- #646 – Detecting a Key’s Toggle State in a Keypress Handler
- #647 – You Can Treat Any Key As A Toggle Key
- #648 – Check the Toggled State of Any Key
- #649 – KeyStates Property Combines IsDown and IsToggled
- #650 – Getting Information About Keyboard Keys from Any Method
- #651 – Using Static Members of the Keyboard Class
- #652 – Mouse Event Summary
- #653 – MouseMove Events
- #654 – Mouse Events for Button Presses
- #655 – Bubbling Mouse Events Swallowed by Some Controls
- #656 – Data Available to Mouse Button Event Handlers
- #657 – Detecting Double Clicks in User Interface Elements
- #658 – An Easier Way to Handle Mouse Double Clicks
- #659 – Detecting a Triple Click
- #661 – ButtonBase.Click Event vs. Mouse Click Events
- #662 – IsMouseOver Property
- #664 – MouseEnter and MouseLeave Events
- #665 – Reacting to MouseEnter / MouseLeave Events
- #666 – Using a Trigger to React to the Mouse Being Over a Control
- #667 – IsMouseOver vs. IsMouseDirectlyOver
- #668 – Retrieving the Mouse’s Current Position
- #669 – Retrieving the Mouse’s Current Position in an Event Handler
- #670 – Getting the Mouse Position Relative to a Specific Element
- #671 – Mouse.GetPosition Only Works When Mouse Is in Window
- #672 – Mouse Coordinates Are in Device Independent Units
- #675 – Handling the PreviewMouseWheel and MouseWheel Events
- #676 – MouseWheel Event Is Fired for Element That Mouse Pointer Is Over
- #677 – Why the Standard Mouse Wheel Delta is 120
- #678 – Hide an Element from the Mouse with IsHitTestVisible Property
- #679 – Setting IsHitTestVisible to False Prevents Interaction with Controls
- #680 – IsHitTestVisible Applies to All Child Elements
- #681 – No Mouse Events When Visibility is Hidden, Collapsed or Hidden
- #682 – Panel Elements Only Fire Mouse Events When Background Is Set
- #683 – MouseUp Can Happen in Different Control from MouseDown
- #684 – Mouse Events Occur for the Element That the Mouse Is Over
- #685 – Capturing the Mouse
- #687 – What Happens If You Forget to Release The Mouse
- #689 – An Application Can Lose Its Mouse Capture
- #690 – Being Notified When Mouse Capture Is Lost
- #691 – IsMouseCaptured Indicates Whether Mouse Is Currently Captured
- #692 – Common Controls Typically Do Not Capture the Mouse
- #693 – TextBox Control Supports Drag-and-Drop
- #694 – An Example of Custom Drag-and-Drop Behavior
- #695 – Implementing Drag-and-Drop Behavior
- #696 – A Drop Target Can Receive Data from Other Applications
- #697 – Dragging Data Out of Your Application
- #700 – Dragging an Image to Microsoft Word
- #701 – Dragging an Image Between WPF Applications
- #702 – Dragging an Image within a WPF Application
- #703 – Indicating Formats that Are Allowed to be Dropped
- #704 – Escape Key Cancels Drag-and-Drop Behavior
- #705 – Dragging a Custom Object Using Serialization as Format
- #706 – Dragging User Interface Elements Between Applications
- #707 – Dragging a List of Items from a WPF Application into Excel
- #708 – Dragging a File Into a WPF Application
- #710 – DoDragDrop Is a Blocking Call
- #711 – Changing the Mouse Cursor While Dragging
- #712 – Showing a Custom Mouse Cursor While Dragging
- #713 – Setting the Cursor to an Image of an UIElement While Dragging
- #714 – Setting the Cursor to Render Some Text While Dragging
- #717 – Drag-and-Drop with Touch on Windows 7
- #729 – Mouse.GetPosition Doesn’t Work While Dragging
- #730 – Use QueryContinueDrag Event to Know When Mouse Button State Changes
- #731 – The Idea of Multi-Touch
- #732 – Basic Events for Raw Touch Input
- #733 – A Full List of Touch Related Events
- #734 – Recognizing Different Fingers in Touch Event Handlers
- #735 – System Applet Indicates Maximum Number of Touch Points
- #736 – Finding the Maximum Number of Touch Points at Run-time
- #737 – Touch Behavior when Maximum Number of Touch Points Reached
- #738 – Sample Code – Drawing and Moving Circles at Touch Points
- #739 – Handling Touch Input at Different Levels
- #740 – Set Background of Canvas to Transparent to Receive Touch Events
- #741 – Using Touch Manipulation Events to Translate an Element
- #742 – Using Touch Manipulation Events to Rotate an Element
- #743 – Using Touch Manipulation Events to Scale an Element
- #744 – Keeping an Element within Window During Touch Manipulation
- #745 – The Basics of Inertia
- #746 – Specifying Inertial Deceleration
- #747 – Implementing Inertia during Touch Manipulation
- #748 – Getting the Size of a Contact Point during Raw Touch
- #749 – Handling the TouchEnter and TouchLeave Events
- #750 – Using Touch Manipulation to Translate in Just One Dimension
- #751 – Indicating which Touch Manipulation Modes You Support
- #752 – Tracking Total Scale when Scaling by Touch Manipulation
- #753 – Scale vs. Expansion in ManipulationDelta Events
- #754 – Implementing Inertia for Expansion during Touch Manipulation
- #755 – Implementing Rotational Inertia during Touch Manipulation
- #756 – Making Element Stop at Edge of Window When Using Inertia
- #1,066 – Elements Must Be Visible and Enabled to Fire Events
- #1,073 – Attached Events
- #1,074 – Attached Event Syntax
- #1,075 – Triggering on IsKeyboardFocusWithin Property
Fonts
Graphics
- #24 – Don’t Use Bitmaps in WPF Applications
- #172 – Changes to a Brush Cascade to Consumers of the Brush
- #174 – Predefined Brushes Are Already Frozen
- #208 – Color Values Are Stored as RGB Values
- #210 – Specifying Colors in XAML As RGB Values
- #211 – Creating a Color Value in Code
- #212 – Creating a Linear Gradient Brush
- #213 – Changing the Gradient Line in a Linear Gradient Brush
- #214 – Starting/Ending a Gradient Fill Inside a Control
- #215 – Other Choices for Gradient Spreads Outside the Fill Area
- #216 – Defining Several Different Gradient Stops in a Gradient Fill
- #217 – Using a Radial Gradient Brush
- #218 – Defining a Radial Gradient’s Focal Point
- #219 – Changing the Radius of a Radial Gradient
- #220 – Using the Predefined Colors
- #221 – Changing a Brush at Run-Time
- #222 – Example: Changing a Color Using RGB Sliders
- #223 – Predefined System Colors
- #224 – Using Predefined System Colors in XAML
- #225 – Using a Brush that Will Update When a System Color Changes
- #226 – Gradient Fills Adjust to the Size of the Control
- #227 – You Can Specify Gradient Fills in Absolute Coordinates
- #228 – Starting/Ending a Gradient Fill Outside a Control
- #229 – Using a Gradient Brush for a Window’s Border
- #230 – Changing a Radial Gradient as Mouse Moves Over a Control
- #231 – You Can Use a Brush for a Control’s Foreground
- #232 – The DrawingVisual Class
- #233 – An Example of Deriving from DrawingVisual Class
- #234 – Getting a DrawingVisual Object Rendered in a Window
- #235 – Types of Visual Content that You Can Create Using a DrawingContext
- #236 – Drawing an Arbitrary Geometry into a DrawingVisual
- #237 – Drawing Shapes with the Shape Subclasses
- #239 – Creating a Custom Shape by Overriding the Shape Class
- #240 – Shape vs. DrawingVisual
- #241 – Rendering Text Using DrawText
- #242 – Drawing Text Using DrawGlyphRun
- #561 – Drawing a 3D Donut Using a Radial Gradient
- #562 – Setting an Effect for an Element in Blend
- #563 – Additional Effects in Expression SDK
- #564 – Other Places to Get Third Party Effects
- #699 – Converting an Image Control to a Bitmap
- #1,146 – Polar Coordinate System
- #1,147 – Converting from Polar Coordinates to Cartesian Coordinates
- #1,148 – Sample Code to Convert from Polar to Cartesian Coordinates
- #1,149 – Drawing an Arc in a Custom Shape
- #1,150 – Custom Arc Shape, part II
- #1,151 – Custom Arc Shape, part III
- #1,152 – A Custom “Pie Slice” Shape
- #1,153 – Handling Custom Dependency Properties that Affect Rendering
- #1,154 – Providing Default Values for Standard Dependency Properties in Custom Controls
- #1,155 – A Circular Progress Indicator
- #1,156 – Changing Circular Progress Control to Be Only an Arc
- #1,157 – Overridden Default Property Values Appear in Property Pane
- #1,160 – Adding a Text Label to the Circular Progress Control
- #1,161 – Using Custom Circular Progress Shape in Control Template
Input
Layout
- #180 – How Layout Works
- #319 – The StackPanel Stacks Controls Vertically or Horizontally
- #320 – Default Size of StackPanel Child Controls
- #321 – HorizontalAlignment and VerticalAlignment
- #322 – Giving StackPanel Child Controls an Explicit Size
- #323 – Provide Space Around StackPanel Children Using Margin
- #324 – Setting a Margin with Different Sizes on Each Edge
- #325 – Specifying a Margin Value in Code
- #326 – Specifying a Symmetrical Margin Using Two Arguments
- #327 – Provide Extra Space Within a Control Using Padding
- #329 – Principles of Layout in WPF
- #330 – HorizontalContentAlignment and VerticalContentAlignment
- #331 – Default Values for HorizontalContentAlignment and VerticalContentAlignment
- #332 – HorizontalContentAlignment and VerticalContentAlignment Are Sometimes Not Relevant
- #333 – Margin and Padding Overview
- #383 – The Problems with Coordinate-Based Layout
- #384 – The Benefits of Flow-Based Layout
- #385 – You Can Nest Panel Controls
- #386 – Layout = Panels + FrameworkElements + Alignment/Margins/Padding
- #387 – Set Background Color to See How Layout Works
- #388 – Layout Containers Don’t Provide Scrolling Support
- #389 – Wrap a Panel in A ScrollViewer to Provide Scrolling Support
- #390 – Scrollbar Visibility in a ScrollViewer
- #391 – Anti-Aliasing Can Lead to Fuzzy GUI Elements
- #392 – Use SnapsToDevicePixels Property to Prevent Anti-Aliasing
- #393 – Canvas Element
- #398 – WrapPanel Element
- #399 – WrapPanel Will Change Layout of its Children as its Size Changes
- #400 – Using a WrapPanel as the Items Panel for a ListBox
- #401 – DockPanel Element
- #402 – Final Child of DockPanel Fills Remaining Space by Default
- #403 – The Order of DockPanel Children Matters
- #404 – A Grid Hosts Child Controls in Rows and Columns
- #405 – Default Values for Grid.Row and Grid.Column Properties
- #407 – Grid Contains Single Row and Column by Default
- #408 – ShowGridLines Property Allows You to See Individual Cells in Grid
- #409 – Child Elements in a Grid Size to Fit the Containing Cell
- #410 – Default Grid Row and Column Sizes
- #411 – Use HorizontalAlignment and VerticalAlignment to Position Child Elements within a Grid
- #412 – Three Ways to Set Row Height or Column Width in a Grid
- #415 – Setting Grid Row Height and Column Width Properties to Absolute Values
- #416 – Setting Grid Rows and Columns to Autosize
- #417 – Using Star Sizing to Distribute Space Evenly across Rows or Columns
- #418 – Star Sizing Allows Setting Row and Column Sizes Relative to Each Other
- #419 – How Cell Sizes are Calculated when Using Star Sizing
- #420 – You Can Use Floating Point Values for Star Sizing
- #421 – HorizontalAlignment, Margins and Column Widths in a Grid
- #422 – Setting Minimum Height and Width on Rows and Columns in a Grid
- #423 – Setting Maximum Height and Width for Rows and Columns in a Grid
- #424 – Getting Data-Bound Items in a ListBox to Be a Consistent Size
- #425 – SharedSizeGroup Allows Sharing Column Sizes Across Different Grids
- #426 – Layout Panels Can Also Have Margins
- #429 – Child Element Properties that Affect Layout
- #430 – Setting Width and Height Using Different Units
- #431 – Binding a Control’s Width to Its Height
- #432 – Height and Width vs. ActualHeight and ActualWidth
- #440 – How Alignment Properties Behave in a WrapPanel
- #441 – Setting a Consistent Height/Width for Child Elements in a WrapPanel
- #442 – WrapPanel Child Elements Can Be Clipped
- #443 – Reversing the Flow Direction in a WrapPanel
- #444 – Children of DockPanel Don’t Always Have to be Stretched
- #445 – DockPanel Can Be Used Like a StackPanel
- #446 – Default Docking for DockPanel Children
- #447 – You Can Use Layout Transforms Within a DockPanel
- #448 – Data Binding Elements in a Collection to a Grid, part I
- #449 – Data Binding Elements in a Collection to a Grid, part II
- #450 – Data Binding Elements in a Collection to a Grid, part III
- #451 – Data Binding Elements in a Collection to a Grid, Part IV
- #452 – Data Binding Elements in a Collection to a Grid, Part V
- #453 – The UseLayoutRounding Property Aligns Things to Pixel Boundaries
- #454 – UseLayoutRounding vs. SnapsToDevicePixels
- #455 – Using ItemContainerStyle to Bind Data Elements in a Collection to a Grid
- #456 – An Element in a Grid Can Span Multiple Rows or Columns
- #457 – Use a GridSplitter to Let a User Change Row or Column Size in a Grid
- #458 – Properties to Set When Using a Horizontal or Vertical GridSplitter
- #459 – Using Two (or More) GridSplitter Elements in the Same Grid
- #460 – A GridSplitter Can Share a Cell with Another Control
- #461 – Making a GridSplitter Look Three-Dimensional
- #462 – Drawing a Better Looking GridSplitter
- #463 – Multiple Parallel GridSplitters
- #464 – ShowsPreview Property Delays Row/Column Size Change Using a GridSplitter
- #465 – Using GridSplitters with Nested Grids
- #466 – Using a GridSplitter in Conjunction with a SharedSizeGroup
- #467 – Use a UniformGrid for Evenly Spaced Rows and Columns
- #468 – FirstColumn Property Allows Blank Cells in a UniformGrid
- #469 – Filling a UniformGrid from Right to Left
- #470 – Elements that Support RightToLeft Flow
- #471 – How FlowDirection Works with the Image Element
- #472 – UniformGrid Defaults to Being Square
- #473 – Positioning Child Elements in a Canvas
- #475 – Child Elements in Canvas Can Overlap
- #476 – Set ZIndex Values for Child Elements of Canvas
- #477 – Default ZIndex Value for Child Elements of a Canvas
- #478 – Two Out of Four Margin Values Are Used for Elements in a Canvas
- #479 – Using a Layout Transform on Child Elements in a Canvas
- #480 – ZIndex Values and Render Transforms
- #492 – Layout Can Change at Runtime
- #496 – Using a StackPanel to Make a Group of Buttons the Same Size
- #497 – Use a UniformGrid to Make a Group of Buttons the Same Size
- #578 – Grid Row and Column Size Use GridLength Object
- #757 – RenderSize, ActualHeight and ActualWidth
- #758 – Access Actual Height and Width from within LayoutUpdated Event Handler
- #760 – Horizontal and Vertical Alignment Basics
- #761 – How FlowDirection Affects HorizontalContentAlignment
- #762 – Set FlowDirection at Runtime Based on CurrentUICulture
- #767 – Transform Basics
- #768 – Scaling Transforms
- #769 – Rotation Transforms
- #770 – The Difference Between a LayoutTransform and a RenderTransform
- #771 – Setting the Center Point for Rotation Transforms
- #772 – Use RenderTransformOrigin to Change Center Point for Rotation Transforms
- #773 – A Rotation Center Point Can Be Outside an Element
- #774 – Translate Transforms
- #775 – Skew Transforms
- #776 – Setting the Center Point for Skew Transforms
- #780 – Combining Transforms
- #781 – Transform Order Matters
- #782 – A RenderTransform Has Better Performance than a LayoutTransform
- #786 – Using Data Binding to Control a 2D Transform
- #787 – Transforming a Point Using Matrix Multiplication
- #788 – Flipping an Element Using a Scale Transform
- #789 – How a Scale Transform Works
- #790 – How a Rotation Transform Works
- #791 – Matrix Multiplication, Part I – Rows and Columns
- #792 – Matrix Multiplication, Part II – Multiplying a Row by a Column
- #793 – Matrix Multiplication, Part III – Procedure
- #794 – Matrix Multiplication, Part IV – Some Examples
- #795 – How a Translation Transform Works
- #796 – WPF Transforms Use Homogeneous Coordinates
- #797 – Scale Transforms Using Homogeneous Coordinates
- #798 – Rotation Transforms Using Homogeneous Coordinates
- #799 – How Transforms Are Combined
- #800 – Transforms Do Not Affect ActualWidth and ActualHeight
- #801 – Creating a Mirror Image Using a RenderTransform
- #802 – Transforms Do Not Affect an Element’s Margins
- #803 – Specifying an Arbitrary Transform with a MatrixTransform
- #804 – Specifying a MatrixTransform as a Simple String
- #805 – Some Examples of Transform Strings
- #806 – Setting ZIndex Values of Child Elements in a Canvas from Code
- #807 – Setting the Position of Child Elements in a Canvas from Code
- #808 – How Shape Elements Are Positioned within a Canvas
- #1,041 – Stretched Child Elements Not Stretched when Rotated
- #1,042 – How FlowDirection Affects a StackPanel
- #1,044 – Placing More than One Element in a Grid Cell
- #1,045 – Control Layering of Elements in a Grid Using ZIndex
- #1,046 – Setting the Background Color of a Cell in a Grid
- #1,047 – Setting the Size of a Grid’s Rows or Columns from Code
- #1,048 – How to Set a GridSplitter’s Alignment Properties
- #1,049 – How the GridSplitter Behaves when Cells Use Star Sizing
- #1,050 – How the GridSplitter Behaves when Cells Use Absolute Sizing
- #1,051 – How the GridSplitter Behaves when Cells Use Auto Sizing
- #1,052 – Making Two Columns in a Grid the Same Size
- #1,053 – How SharedSizeGroup Relates to Column Sizing
- #1,054 – TabPanel Wraps and Evenly Spaces
- #1,055 – Canvas Does Not Clip Child Elements
- #1,056 – Grid Clips Child Elements
- #1,057 – Preventing a Grid from Clipping a Child Element
- #1,058 – Translation Makes No Sense within Layout Transforms
- #1,059 – Clipping vs. Resizing in a Grid
- #1,060 – Clipping in Grid Happens Before Render Transforms
- #1,061 – Scaling Content Using a ViewBox
- #1,062 – Scaling a Canvas Using a ViewBox
- #1,063 – ViewBox Stretching Options
- #1,064 – Limiting ViewBox to Scale in Just One Direction
- #1,065 – ViewBox Child Must Have Explicit Size
- #1,162 – Layout in Action, part I
- #1,165 – Layout in Action, part II
- #1,166 – Layout in Action, part III
- #1,167 – Layout in Action, part IV
- #1,168 – Layout in Action, part V
- #1,169 – Custom Panel, part I (Measure and Arrange)
- #1,170 – Custom Panel, part II (Simple Arrangement of Child Elements)
- #1,171 – Custom Panel, part III (Using DesiredSize)
- #1,172 – Custom Panel, part IV (ZIndex)
- #1,173 – Custom Panel, part V (Two Columns)
- #1,174 – Custom Panel, part VI (Attached Properties)
- #1,175 – Custom Panel, part VII (Using Attached Property to Arrange)
- #1,176 – Custom Panel, part VIII (Treemap-like Visualization)
- #1,197 – Autosizing in a Grid with Maximum Size
- #1,201 – How to Share Star Sized Column Sizes
Localization
- #1,112 – Internationalization vs. Localization
- #1,113 – Use of Cultures in Internationalization
- #1,114 – Culture Codes
- #1,115 – Internationalization I – Obey CurrentCulture for Output
- #1,116 – An Example of Output that Obeys CurrentCulture
- #1,117 – Internationalization II – Obey CurrentCulture for Input
- #1,118 – An Example of Input that Obeys CurrentCulture
- #1,119 – Localization I – Set UICulture Tag
- #1,120 – Getting a List of All Supported Cultures
- #1,121 – Localization II – Assigning UIDs to All Localizable Elements
- #1,122 – Localization III – Updating UIDs after Initial Creation
- #1,123 – Localization IV – Download and Build the LocBaml Tool
- #1,124 – Localization V – Extracting Localizable Content Using LocBaml
- #1,125 – Localization VI – Interpreting CSV File That Is Output by LocBaml Tool
- #1,126 – Localization VII – Preventing Translator from Modifying Certain Elements
- #1,127 – Localization VIII – Passing Comments On to the Translator
- #1,128 – Localization IX – Localizing Content
- #1,129 – Localization X – Integrating Translations Back into Application
- #1,130 – Localization XI – Satellite Assemblies
- #1,131 – Localization XII – Set NeutralLanguageResources Attribute
- #1,132 – Localization XIII – Verifying Localized Content
- #1,133 – Localization XIV – Add Content to Already Localized Application
- #1,134 – Localization XV – Localizing Other Content
Media
Miscellaneous
- #115 – Downloading All .NET 4 Source Code
- #238 – The Best Books on WPF
- #498 – A List of WPF Blogs and Forums
- #526 – Use Adobe Kuler to Create Color Themes
- #673 – Mapping Mouse Position to Color
- #674 – Mapping Mouse Position to Color, part II
- #688 – Moving an Element with the Mouse
- #709 – Changing the Cursor
- #718 – Copying Text To and From the Clipboard
- #719 – ASCII Art Generator
- #720 – Discovering What Kind of Data Is on the Clipboard
- #721 – A Tool for Viewing the Clipboard
- #724 – Sample Code for Examining Control Templates
- #727 – Getting a List of Files from the Clipboard
- #728 – Using the Clipboard to Transfer Other Types of Data
- #763 – The Difference Between CurrentCulture and CurrentUICulture
- #764 – Current Culture Is Used When Converting Data to A String
- #765 – WPF Data Binding Ignores CurrentCulture
- #766 – WPF Data Binding Ignores Custom Formatting
- #783 – Downloading and Installing the WPF Performance Suite
- #784 – Using the Perforator Tool to Analyze WPF Application Performance
- #785 – Using the Visual Profiler Tool
- #823 – Setting a Cursor from XAML
- #824 – Setting a Cursor on a Top Level Element
- #826 – Lower-Level Elements Can Have Different Cursor
- #827 – Overriding the Cursor Properties of Child Elements
- #829 – Setting an Application-Wide Cursor from Code
- #830 – Loading a Cursor from a File
- #831 – Embedding a Cursor in Your Project as a Resource
- #832 – Creating a Cursor File
- #946 – Checking for Valid Characters in a String
- #962 – A Color Selection Box Organized by Hue, part I
- #963 – A Color Selection Box Organized by Hue, part II
- #1,103 – Configuring a Splash Screen
- #1,104 – How the Splash Screen Works
- #1,106 – Creating a Single Instance Application
- #1,107 – Accessing an Embedded Resource Using a Uri
- #1,108 – Use Reflector to Get List of Resources
- #1,109 – Accessing a Resource in a Different Assembly
- #1,110 – Using a Resource as a Content File
- #1,111 – Referencing Content Files from XAML
Security
Styles
Visual Studio
Windows
XAML
|