WPF基础知识
可以使用XAML创建任何类,必须是友好声明,构造函数没有参数的。
XAML就是.NET语言的一种表现形式。只是和C#书写格式不一样而已。
根元素的标记、主窗体标记
x:class、StartupUri="Window1.xaml"
一元素,特性
1、XAML中一个元素可以理解为程序中的一个对象,里面包含对象的类型
特性(元素的特性):一个对象的Public属性
附加特性:解析到附加特性时将执行一个对应的事件。
Grid.SetRow(控件, 行)
2、程序运行时会自动创建根据XAML中的元素、特性自动创建对象并 设置对象的值。
3、子元素:
3.1、内容
3.2、集合(IList、IDictionary)
3.3、转换
对象元素的子元素XAML处理规则
IList
IDictionary
内容属性
转换
二。命名空间
1、和C#编程环境一样,引用那个对象需要首相将对象的命名空间添加到当前单元、XAML
也需要添加单元引用,只是格式和C#程序环境有点差别。
两个通用的命名空间:
xmlns=http://schemas.microsoft.com/winfx/2006/xaml/presentation
xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml
2、引用其他命名空间格式:
xmlns:自定义=“clr-namespace:对象的命名空间;assembly=DLL名称”
如果本程序集可以省去assembly
三。扩展标记
1.、应用:设置属性值使用
2、扩展标记类必须从System.Windows.Markup继承
3.、使用“{Markup 参数}”
4、执行:创建“Markup”实例->调用Providevalue过程获取参数中的值。
5、binding留在以后章节。
四。动态加载XAML(XamlReader XamlWrite)
XamlReader.Load()//边加载,边解析 XamlWrite.Save(windows)
动态加载例子:
// Get the XAML content from an external file.
FileStream s = new FileStream("Window1.xml", FileMode.Open);
DependencyObject rootElement = (DependencyObject)
XamlReader.Load(s);
this.Content = rootElement;
// Find the control with the appropriate name.
//button1 = (Button)LogicalTreeHelper.FindLogicalNode(rootElement, "button1");
FrameworkElement frameworkElement = (FrameworkElement)rootElement;
button1 = (Button)frameworkElement.FindName("button1");
// Wire up the event handler.
button1.Click += new RoutedEventHandler(button1_Click);