C# 中XML XAML WPF的学习

WPF:Windows Presentation F

XAML:Extensible Application Markup  Language

XAML文档定义了WPF应用程序中组成窗口的面板、按钮和各种控件的布局。开发和美工设计界面可以独立起来。

XML:指可扩展标记语言(Extensible Markup Language),XML被设计为传输和存储数据,其焦点是数据的外观。

VS添加XML。新建项目中找不到XML此项文件,但在新建文件中有。

<Window x:Class="WpfLearn.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>

    </Grid>
</Window>


该文档仅含两个元素:顶级的window元素以及一个grid元素,window元素代表整个窗口,在Grid元素中可以放置所有控件。

</Window>标签关闭了Window元素,文档结束。

Title这行代码:每个特性对应Window类的一个单独属性。告诉WPF创建标题为“MainWindow”的窗口,并使窗口的大小为300*300单位。WPF中使用可进行缩放以适应不同显示器分辨率的设备无关单位。

xmlns特性是XML中的一个特殊特性,它专门用来声明名称空间。这段标记声明了两个名称空间,在创建的所有WPF XAML文档中都会使用这两个名称空间:

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"是WPF核心名称空间。包含了所有WPF类,包括用来构建用户界面的控件,此处声明没有使用名称空间前缀,其成为整个文档的默认名称空间。除非另行指明,每个元素自动位于这个名称空间。

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"是XAML名称空间。包含各种XAML使用特性,这些特性可影响文档的解释方式。该名称空间被映射为前缀x,意味着可通过在元素名称之前放置名称空间前缀x来使用该名称空间。

namespace WpfLearn
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }


Visual Studio自动创建可以放置事件处理代码的部分类,InitializeComponent()当创建类的一个实例时,默认构造函数调用InitializeComponent()方法,此方法不可删除,为窗口类添加另一个构造函数,也要确保调用此方法。InitializeComponent()方法的所有工作就是调用System.Windows.Application类的LoadComponent()方法。LoadComponent()方法从程序集中提取BAML(编译过的XAML),并用它来构建用户界面。当解析BAML时,它会创建每个控件对象,设置其属性,并关联所有事件处理程序。

命名元素
在代码隐藏类中,希望通过代码操作控件。如需要读取或修改属性,或自由地关联以及断开事件处理程序。若要实现,控件必须包含XAML Name特性。
可在XAML文档中 手动增加关联名称(使用x:前缀)
    <Grid x:Name="grid1">

    </Grid>


或者在设计器中Properties中设置其Name属性。
代码中就可以直接使用grid1:MessageBox.Show(string.Format("The grid is {0}", grid1.ActualHeight));
RuntimeNameProperty特性指示哪个属性的值将作为该类型的实例的名称。FrameworkElement类使用RuntimeNameProperty特性进行了修饰。

传统的Windows窗体应用程序中,每个控件都有名字。WPF中,没有此要求,当不需要元素名称时通常会省略。
Grid控件是WPF中最常见的用于安排布局的工具

任何 XAML标签集合都可以用一系列执行相同任务的 代码语句代替。
标记扩展
使用标记扩展的情况:1、希望将属性值设置为一个已经存在的对象,或者可能希望通过将一个属性绑定到另一个控件来动态地设置属性值。
<x:Static Member="SystemColors.ActiveCaptionBrush">
                </x:Static>


附加属性
是可用于多个控件但在另一个类中定义的属性。在WPF中,附加属性常用于控件布局。
事件
XAML用来修改界面,而非整个用户界面手动编写XAML。

WPF布局原则

几个原则
1、不应显式设定元素(如控件)的尺寸;可以设置最大和最小尺寸来限制。
2、不应使用屏幕坐标指定元素的位置。需要在元素之间添加空白空间,可使用margin属性。
3、布局容器的子元素“共享”可用的空间;
4、可嵌套的布局容器。典型的使用Grid面板为开始,Grid面板是WPF中功能最强大的容器。
滚动是由特定的内容控件ScrollViewer提供。
background属性是用于为面板背景着色的画刷,如果想接收鼠标事件,就必须将该属性设置为非空值(如果想接收鼠标事件,又不希望显示固定颜色的背景,将背景色设置为透明即可。

Border控件
其属性用来设置边框的背景、颜色,大小和宽度,圆角等。
WrapPanel面板
控制界面的一小部分布局。
DockPanel
沿着外边沿拉伸所包含的控件。




..


.....







..

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一枚努力的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值