1.Xaml布局与控件 (标记)
Canvas:子控件提供其自己的布局。
DockPanel:子控件与面板的边缘对齐。
Grid:子控件由行和列定位。固定,自动(所需最小),比例。
StackPanel:子控件垂直或水平堆叠。
VirtualizingStackPanel:子控件在水平或垂直的行上虚拟化并排列。
WrapPanel:子控件按从左到右的顺序定位,在当前行上的控件超出允许的空间时,换行到下一行。
内置的 WPF 控件:
按钮: Button 和 RepeatButton。
日期显示和选项: Calendar 和 DatePicker。
对话框: OpenFileDialog、 PrintDialog和 SaveFileDialog。
数字墨迹: InkCanvas 和 InkPresenter。
文档: DocumentViewer、 FlowDocumentPageViewer、 FlowDocumentReader、 FlowDocumentScrollViewer和 StickyNoteControl。
输入: TextBox、 RichTextBox和 PasswordBox。
布局: Border、 BulletDecorator、 Canvas、 DockPanel、 Expander、 Grid、 GridView、 GridSplitter、 GroupBox、 Panel、 ResizeGrip、 Separator、 ScrollBar、 ScrollViewer、 StackPanel、 Thumb、 Viewbox、 VirtualizingStackPanel、 Window和 WrapPanel。
媒体: Image、 MediaElement和 SoundPlayerAction。
菜单: ContextMenu、 Menu和 ToolBar。
导航: Frame、 Hyperlink、 Page、 NavigationWindow和 TabControl。
选项: CheckBox、 ComboBox、 ListBox、 RadioButton和 Slider。
用户信息: AccessText、 Label、 Popup、 ProgressBar、 StatusBar、 TextBlock和 ToolTip。
UI button 调用(代码隐藏)
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="SDKSample.AWindow"
Title="Window with Button"
Width="250" Height="100">
<!-- Add button to window -->
<Button Name="button" Click="button_Click">Click Me!</Button>
</Window>
using System.Windows; // Window, RoutedEventArgs, MessageBox
namespace SDKSample
{
public partial class AWindow : Window
{
public AWindow()
{
// InitializeComponent call is required to merge the UI
// that is defined in markup with this class, including
// setting properties and registering event handlers
InitializeComponent();
}
void button_Click(object sender, RoutedEventArgs e)
{
// Show message box when button is clicked.
MessageBox.Show("Hello, Windows Presentation Foundation!");
}
}
}
2.Binding (UI与数据绑定,即同步)
数据变化,UI跟着变化;UI变化,数据跟着变化。
示例1:当您在 TextBox 中输入文本时,TextBlock 会自动更新。只用xaml,无代码。
"{Binding ElementName=元素名,Path=元素属性}"