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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值