精华内容
下载资源
问答
  • XAML

    2019-01-29 17:18:56
    1、XAML语法术语 XAML语法术语的起源 此处定义的XAML语法术语在XAML语言规范中也有定义或引用。XAML是一种基于XML且遵循XML结构规则的语言。其中的术语共享自或基于描述XML语言或XML文档对象模型(DOM)时的常用...

    1、XAML语法术语

    XAML语法术语的起源

    此处定义的XAML语法术语在XAML语言规范中也有定义或引用。XAML是一种基于XML且遵循XML结构规则的语言。其中的术语共享自或基于描述XML语言或XML文档对象模型(DOM)时的常用术语。

    对象元素语法

    对象元素语法是一种XAML标记语法,通过声明XML元素来实例化公共语言运行库(CLR)类或结构。此语法与其他标记语言(例:HTML)的元素语法相似。

    例如, 示例是一个对象元素语法,实例化Butotn类的一个新实例,并指定了其属性和值。

    下面的示例还包括可扩展应用程序标记语言(XAML)内容属性语法的对象元素语法。其中包含的内部文本将用来设置TextBox可扩展应用程序标记语言(XAML)的Text属性。

    <TextBox>This is a Text Box!</TextBox>

    属性语法

    属性语法是一种XAML标记语法,该语法通过针对元素声明属性(Attribute)来设置属性(Property)值或命名事件的事件处理程序。元素总是通过对象元素语法来声明。属性名必须与属性或事件的CLR成员名称相匹配。

    2、XAML命名控件和命名控件映射

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    第一个声明将整个WPF(Windows Presentation Foundation)命名空间映射为默认命名空间,第二个声明映射单独的可扩展应用程序标记语言(XAML)命名空间,通常将其映射为 x:前缀。

    关系:XAML实际上是语言标准,而WPF是将XAML作为语言使用的一个实现。XAML语言指定一些为了兼容而假定要实现的语言元素,每个元素都应当能通过针对XAML命名空间执行的XAML处理器实现进行访问。

     

     

     

     

    展开全文
  • xaml

    2017-02-28 08:06:00
    一、xaml简介 1.定义 xaml extensible application markup language 2.由来,为什么会有这个 winform 时代,每个空间都是使用后台代码生成,wpf页面显示使用xml实现(但是也可以后台代码),这样解决了开发人员...


    一、xaml简介

    1.定义

    xaml extensible application markup language 

    2.由来,为什么会有这个

     winform 时代,每个空间都是使用后台代码生成,wpf页面显示使用xml实现(但是也可以后台代码),这样解决了开发人员和设计人员协作开发的问题。

    3.xaml变体应用

    wpf xaml

    xps xaml

    silverlight xaml

    wf xaml

    4.xaml编译

    被编译为baml(binary application markup language),二进制应用程序标记语言,是xaml的二进制表示。

    目的是能够让程序快速运行,并很容易的迁移到其他工具和平台。

     

    二、xaml基础

    1.xaml文档中的每个元素都会被映射为.net类的实例,元素的名称也和类名一致.

    2.元素之间可以相互嵌套

    3.元素的属性(attribute)设置每个类的属性(property)

    4.尽管可以使用任何的顶级元素,但是wpf应用程序只使用以下几个元素作为顶级元素:

    window元素

    page元素

    application元素

    5.xaml名称空间

    a.   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation "

    b.    xmlns:"x=http://schemas.microsoft.com/winfx/2006/xaml"

    因为xaml中的元素对应.net类的一个实例,名称空间指代的是这些类的名称空间(位置),上面的a命名空间是wpf的核心名称空间。它包含了所有的wpf类,包括用来构建用户界面的控件,b命名空间它包含xaml实用特性,这些特性可影响文档的解释方式。该名称空间被映射为前缀x,可以这样使用改名称空间(<x:elementName>)

    备注:xaml的名称空间和.net的不是一一对应的。

    6.代码隐藏类

    <Window x:class="WindowsApplication.Window1">

    7.给控件命名 Name /x:Name

    包含name属性必须使用RuntimeNameProperty特性修饰。

    [RuntimeNameProperty("Name")]
    [StyleTypedProperty(Property = "FocusVisualStyle", StyleTargetType = typeof(Control))]
    [UsableDuringInitialization(true)]
    [XmlLangProperty("Language")]
    public class FrameworkElement :......

    三、xaml中的属性和事件

    1.简单属性与类型转换器

    [Localizability(LocalizationCategory.None, Readability = Readability.Unreadable)]
    [TypeConverter(typeof(TransformConverter))]
    [ValueSerializer(typeof(TransformValueSerializer))]
    public abstract class Transform :

    如Transform属性,首先会检查Transform类的TypeConverter的声明,假若一个类没有这样的声明,会查找给属性使用值所对应的类的TypeConverter声明。如Foreground属性使用一个Brush对象作为属性的值,就会去检查Brush类的TypeConverter

     

    2.复杂属性

    元素的属性比较复杂,一个背景色要实现渐变,用简单的值表示的话会会比较难读懂,编程人员也容易出错,.xaml提供了属性元素语法,


    <Grid Name="grid1">

        <Grid.Background>

            <LinearGradientBrush>

        <LinearGradientBrush.GradientStops>

          <GradientStop Offset="0.00" Color="Red"/>

            ....

            ...

    </Grid>

     

    3.标记扩展 (todo 没完全明白28页)

    将属性设置为一个已经存在的对象,或者可能希望通过将一个属性绑定到另一个空间来动态地设置属性值。

    使用:{标记扩展 参数}

    一般语法

    <Button Foreground="{x:Static SystemColors.ActiveCaptionBrush}" >

    属性元素语法

    <Button>

      <Button.Foreground>

        <x:Static Member="SystemColors.ActiveCaptionBrush"></x:Static>

      </Button.Foreground>

    </Button>

    标记扩展是StaticExtension类(根据约定,在引用扩展类时,可以省略最后一个单词Extension)

    所有的标记扩展都由继承自System.Windows.Markup.MarkupExtension类的类来实现。

    4.附加属性

    附加属性常常用于控件布局。

    <TextBox Grid.Row="0">

    ...

    附加属性根本不是真正的属性,他们实际上被转换为方法调用,DefiningType.SetPropertyName(),上面的附加属性会调用Grid.SetRow()方法

     

    转载于:https://www.cnblogs.com/doublejun/p/6477203.html

    展开全文
  • XAML tutorial

    2018-08-03 22:27:09
    Welcome to the XAML tutorial for beginners. This tutorial puts greater emphasis on real- time implementation of the concept rather than discussing just the theory part. The primary objective of this ...
  • XAML 示例 XAML 示例项目的集合
  • WPF xaml数据绑定

    2020-09-09 22:08:09
    xaml数据绑定xaml数据绑定xaml数据绑定xaml数据绑定xaml数据绑定xaml数据绑定xaml数据绑定xaml数据绑定xaml数据绑定xaml数据绑定xaml数据绑定xaml数据绑定
  • SkiaSharp.Forms.Xaml SkiaSharp的Xaml扩展 例子 入门 安装SkiaSharp.Forms.Xaml软件包 Install-PackageSkiaSharp.Forms.Xaml -Version 1.1.0-pre 将SkiaSharp和xaml扩展名称空间添加到您的Xaml页面/视图 xmlns:...
  • Xamarin XAML语言教程XAML文件结构与解析XAML

    Xamarin XAML语言教程XAML文件结构与解析XAML

    XAML文件结构

    在上文中,我们创建XAML文件后,会看到类似图1.16所示的结构


    图1.16  结构

    其中,.xaml文件和.xaml.cs文件就是XAML文件的结构。以下就是对这两个文件的介绍。

    •   .xaml文件中包含的就是XAML代码,实际上就是XML语法。官方的说法:它是一个声明对象的语言,为我们创建对象提供便捷的一种方式。与HTML类似,特点是用来描述用户接口 (UI)内容。
    •  通常我们把与.xaml文件关联的.xaml.cs文件叫作代码隐藏文件。如果开发者引用.xaml中的任何一个事件(如Button的Click 事件),,将在这个文件中编写对应的事件处理代码。

    解析XAML

    在上文中我们创建XAML文件后,会看到类似以下3种代码。

    (1)第一种是使用Visual Studio创建项目后创建XAML文件显示的XAML代码:


    • <?xml version="1.0" encoding="utf-8" ?>
    • <ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
    •              xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    •              x:Class="Hello.XAMLPage">
    •   <Label Text="{Binding MainText}" VerticalOptions="Center" HorizontalOptions="Center" />
    • </ContentPage>

    (2)第二种是使用Xamarin Studio创建项目后创建XAML文件显示的XAML代码:


    • <?xml version="1.0" encoding="UTF-8"?>
    • <ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
    •                         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    •                         x:Class="Hello.MyPage">
    •          <ContentPage.Content>
    •          </ContentPage.Content>
    • </ContentPage>

    (3)第三种是在创建项目的同时创建XAML文件显示的代码:


    • <?xml version="1.0" encoding="utf-8" ?>
    • <ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
    •              xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    •              xmlns:local="clr-namespace:Hello"
    •              x:Class="Hello.MainPage">
    •   <Label Text="Welcome to Xamarin Forms!"
    •            VerticalOptions="Center"
    •            HorizontalOptions="Center" />
    • </ContentPage>

    这3种文件代码的公共部分为如下:


    • <?xml version="1.0" encoding="utf-8" ?>
    • <ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
    •              xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    •              x:Class="Hello.MainPage">
    • </ContentPage>

    以下就是对XAML公共默认的部分进行说明。


    1.  第一行是对XML简单的说明,其中包含了XML版本号以及编码格式。
    2. 第二行代码至最后一行代码的功能是构建界面所需要的内容。其中,第二行和第三行使用两个XML命名空间(xmlns)声明引用了URL。开发者不需要知道这些URL指向的具体内容。他们只是Xamarin和Microsoft拥有的URL,它们基本上充当版本标识符。第一个XML命名空间声明意味着在XAML文件中定义了没有前缀的标签,它引用Xamarin.Forms中的类,如ContentPage。第二个命名空间声明定义了x的前缀,它用于XAML本身固有的几个元素和属性,(理论上)由XAML的所有实现支持。

    注意:这些元素和属性根据嵌入在URL中的年份略有不同。Xamarin.Forms支持2009 XAML规范,但不是所有的。


    1. 第四行代码。在声明x前缀之后,该前缀立即用于名为Class的属性,这是因为使用这个x前缀在XAML文件中非常普遍。例如,Class简称为x:Class。x:Class指定.NET类名称。

    注意:x:Class属性只能出现在XAML文件的根元素中,以定义派生的C#类。

    对于x:Class指定类的定义,开发者可以在.xaml.cs文件中看到,代码类似于以下代码:


    • using System;
    • using System.Collections.Generic;
    • using System.Linq;
    • using System.Text;
    • using System.Threading.Tasks;
    • using Xamarin.Forms;
    • namespace Hello
    • {
    •     public partial class MainPage : ContentPage
    •     {
    •         public MainPage()
    •         {
    •             InitializeComponent();
    •         }
    •     }
    • }

    注意:x:Class的值所指示的类型在声明的时候必须使用partial关键字。这样由XAML解析成的类和.xaml.cs文件里定义的部分就合二为一了。正是由于这种partial机制,我们可以把类的逻辑代码留在.xaml.cs文件中,并用C#语言来实现,而把那些于声明及布局UI元素相关的代码分离出来,实现UI以逻辑分离。

    展开全文
  • XAML Region

    2013-03-09 23:01:25
    XAML Region,可以把XAML中的代码进行分组收起来
  • XAML属性

    2019-08-05 20:44:18
    XAML属性 开发工具与关键技术:Visual Studio 2017、WPF 撰写时间: 2019年8月5日 1、元素属性 XAML是一种声明性语言,XAML编译器会为每一个标签创建一个与之对应的对象。对象创建出来之后要对它的属性进行必要的...

    XAML属性

    开发工具与关键技术:Visual Studio 2017、WPF
    撰写时间: 2019年8月5日
    

    1、元素属性

    XAML是一种声明性语言,XAML编译器会为每一个标签创建一个与之对应的对象。对象创建出来之后要对它的属性进行必要的初始化之后才有使用意义。

    因为XAML语言不能写程序运行逻辑,所以一份XAML文档除了使用标签声明对象,另外一个功能就是初始化对象的属性了。

    在XAML中为对象属性赋值共有两种方法:

    1.使用字符串进行简单赋值;
    2.使用属性元素进行复杂赋值。

    2、使用标签的Attribute为对象属性赋值

    我们已经知道,标签中的Attribute里面有一部分与对象的Property互相呼应。

    我们首先学习使用字符串对Attribute进行简单赋值,将Rectangle填充成单一的颜色。

    <Grid>
       <Rectangle Name="Myrectangle"
    Width="100" Height="100" Fill="Aqua">
    </Rectangle>
    </Grid>
    

    在XAML编译器中,“Aqua” 这个字符串被翻译成了一个SolidColorBrush对象并赋值给了Myrectangle对象。翻译成C#代码就是:

    private void Window_Loaded(object sender, RoutedEventArgs e)
    
    {
    
        SolidColorBrush
    colorBrush = new SolidColorBrush();
    
        colorBrush.Color =
    Colors.Aqua;
    
        Myrectangle.Fill =
    colorBrush;
    
    }
    

    3、使用TypeConverter类进行属性映射

    在上面的例子中我们使用Attribute=Value语法赋值时,由于XAML语法限制,Value只能是一个字符串值。那么就会引发两个问题:

    1.如果一个类能使用XAML语言进行声明,并允许它的Property与XAML标签的Attribute互相映射,那么就需要为这个类的Property准备适当的转换机制。

    2.由于Value是一个字符串,所以其格式复杂程度有限。面对格式复杂的字符串就难以满足赋值需求。

    我们举一个简单的栗子来演示第一个问题:下面的代码XAML编译器会给我们提示无法将字符串转换成Huamn类型。

    <Window.Resources>  
    <my:Human x:Key="human" Child="DSA" />
    </Window.Resources>
    
    展开全文
  • XAML简介

    2019-10-03 19:04:13
    最近一段时间主要是在学习WPF,首先想介绍下XAML 什么是XAML? XAML是esXtensible Application Markup Language的英文缩写,相应的中文名称为可扩展应用程序标记语言,它是微软公司为构建应用程序用户界面而创建的一...
  • xaml_XAML或JavaFx?

    2020-06-06 17:55:52
    xaml 这是使用XAML和JavaFx构建应用程序的快速,主观, 无权且非常不科学的比较。 比较是基于我与每个人合作的个人经验。 在XAML方面,这意味着WPF和Win8存储应用程序 。 在JavaFx方面,这意味着Windows 7应用程序...
  • XAML转HTML.zip

    2020-10-07 12:28:01
    xaml转换成html/xaml转换成html/xaml转换成html/xaml转换成html/xaml转换成html/xaml转换成html
  • 1. XAML 的问题 刚入门 WPF/UWP 之类的 XAML 平台,首先会接触到 XAML 这一新事物。初学 XAML 时对它的印象可以归纳为一个词:一坨。 随着我在 XAML 平台上工作的时间越来越长,我对 XAML 的了解就越来越深入,从...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,411
精华内容 10,564
关键字:

xaml