70
富文本控件:
FlowDocumentScrollViewer控件在简介中没有过Flow的包装器中FlowViewer是最简单的一个。它允许用户使用滚动条滚动长文档。因为这是我们第一次使用FlowDocument,我们只知道基本的“Hello World!”例子开始。除了使用FlowDocumentScrollViewer之外,本文主要介绍包装器的几个常见概念。这是第一个例子:<Window x:Class="WpfTutorialSamples.Rich_text_controls.Fl
71
Rich Text控件:
WPF Rich Text控件简介在其他一些UI框架中,比如WinForms,想要显示长篇的富文本是非常困难的。一般的解决办法是通过在RichTextBox中加载文件或者创建一个WebBrowser组件来加载本地或者远程网页,但是,如果想随心所欲的编辑这些加载的富文本,基本是不可能的。而微软想在WPF中解决这个问题,让这些富文本的编辑也变得和显示一样简单。FlowDocument负责渲染富文本,这包括图片、列表、表格,以及其他可以浮动、调整等的元素。使用FlowDocument,
78
数据绑定:
UpdateSourceTrigger属性在上一篇文章中,我们看到了TextBox中的更改是如何不立即发送回源的。相反,只有在TextBox上丢失焦点后才更新源。此行为由binding的UpdateSourceTrigger属性控制。该属性默认值为“Default”,表示根据您绑定的属性来更新源。在输入时,除了Text属性之外的所有属性在属性更改时立即更新(PropertyChanged),而当目标元素丢失焦点时(LostFocus),Text属性才会更新。显然,Default是UpdateS
198
基础控件:
RadioButton 控件RadioButton 控件允许你向用户提供一列可能的选项,而同时只允许选中一个。你可以用 Combobox 来占用更少的空间实现同样的效果,但一组单选框会令用户更直观地看到他们的可用选项。<Window x:Class="WpfTutorialSamples.Basic_controls.RadioButtonSample"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/p
61
WPF样式:
触发器动画与以往的框架如WinForms相比,WPF最大的优势之一就是可以更为轻松地处理动画(animation)。与以往框架中在两个静态值之间来回切换的处理方式不同,WPF直接使用触发器(Trigger)将动画作为Trigger触发时的响应。有鉴于EnterActions与ExitActions属性存在于所有已讨论的Trigger种类(EventTrigger除外),包括单一触发与多重触发,我们将选择它们作为例子。<Window x:Class="WpfTutorialSa
66
ListView控制项:
带有GridView的ListView在之前的ListView文章中,我们使用了WPF ListView的最基本版本,它是没有指定自定义View的版本。这导致ListView的行为与WPF ListBox非常相似,但有一些细微差别。真正的区别在于视图,而WPF内置了一个专门的视图:GridView。通过使用GridView,您可以在ListView中获得多列数据,就像您在Windows资源管理器中看到的那样。为了确保每个人都能看到它,我们将从一个基本的例子开始:<Windo
113
面板控件:
Grid-跨越默认的网格行为是每个控件占用一个单元格,但有时您希望某个控件占用更多的行或列。幸运的是,Grid使用附加属性ColumnSpan和RowSpan使这非常简单。此属性的默认值显然为1,但您可以指定一个更大的数字,以使控件跨越更多行或列。这是一个非常简单的示例,我们使用ColumnSpan属性:<Window x:Class="WpfTutorialSamples.Panels.GridColRowSpan"xmlns="http://schema
97
杂项控件:
Border控件边界(Border)控件是一个装饰控件,可以用来添加一个边界,一个背景或者两者一起,以及其他的一些元素。由于WPF 的面板(Panels)并不支持在其边缘添加边界,边界控件可以帮你实现,诸如环绕面板添加一个边界的操作。下面给你看一个有关使用边界控件的简单例子。<Window x:Class="WpfTutorialSamples.Misc_controls.BorderSample"xmlns="http://schemas.microsof