摘要
在XAML中,我们可以通过在标识内部输入特性名来为其取值,就像为button的Content特性取值一样简单。或者我们也可以在后台根据标识的Name来为其取值。而特性原素则是为标识特性取值的第三种方式,让我们的XAML更加灵活多变。
正文
XAML 特性原素,标识拓展和注解
这节而言一下XAML中的特性原素,标识拓展,和注解。
特性原素
一般的,大家要想对一个标识的特性取值,能够立即在标识內部输入特性名给其取值,如大家给button的Content特性取值:
<Button Content="I am Button" />
或是我们在后台管理根据标识的Name寻找这一标识,用编码为其取值。
特性原素则是为标识特性取值的第三种方式。
说白了,特性原素是以原素的方式来表述一个标识的特性,它的英语的语法以下:
<tag>
<tag.property>
value
</tag.property>
</tag>
上边给button的Content取值的编码就可以改成下列方式:
<Button>
<Button.Content>
I am button
</Button.Content>
</Button>
大家前几组讲到,标识有非空和空标识之分,非空标识是能够有自身的內容的标识,因此 大家为标识的內容取值时,是能够省去特性原素的,之上编码就可以简单化为:
<Button> I am button</Button>
系统软件会默认设置将“I am button” 取值给Content,仅有內容能够那么做,其他的特性若要应用特性原素取值全是必须表明申明的。
你很有可能会疑惑,特性标识看上去使我们的编码复杂化了,自然,假如给原素的特性赋一些简易的值,大家不用用特性原素,如同宽,高那样的特性,大家立即在原素內部取值要简易的多,可是在我们碰到一些繁杂的取值状况,特性原素的优点就表明出来,再拿button间距,我觉得让button的內容是一个标志加文本,此刻,显而易见在特性內部立即取值是没法保证了,大家要不在后台管理应用编码,要不就必须用特性原素了,可以看案例:
<Button> <WrapPanel> <materialDesign:PackIcon Width="16" Height="16" Margin="0 0 5 0" VerticalAlignment="Center" Foreground="White" Kind="Logout" /> <TextBlock TextWrapping="Wrap" Text="退出登录" FontSize="15" VerticalAlignment="Center" /> </WrapPanel> </Button>
实际效果以下:
在button內部放了一个WrapPanel原素,在这类状况下,特性原素是非常简单适合的,终究C#编码是用于写逻辑性的,不可太多涉及到UI的撰写。
标识拓展
标识拓展是xmal最特点的一个物品,它一样是给特性取值的一种方式,可是标识拓展如同它的名称一样,是对特性取值的拓展,它是大家事后要讲的MVVM方式中控制和数据信息的公路桥梁。
标识拓展是由大括号括起來的一些內容构成的,请看下面的编码:
<TextBlock x:Name="text_show" Text="您好"/> <Button Width="50" Height="30" Content="{Binding Text,Source={x:Reference text_show}}"></Button>
以上编码中{Binding Text,Source={x:Reference text_show}}便是标识拓展,它应用Binding指令和Source指令将button的內容跟TextBlock的Text特性关联了起來。在我们变更TextBlock的Text特性的值的情况下,Button按键的值也会变,程序执行以下:
事后的MVVM章节目录,大家会讲控制的值与VM网页页面中的特性关联,便是依靠标识拓展这一英语的语法。在我们更改VM特性值时,前台接待的控制值便会变,这就是WPF不同寻常的地区:数据驱动控制。新手,能够先做掌握,事后大家会不断触碰标识拓展,并且也仅有在编码中才可以更强的了解标识拓展的强劲。
注解
最终讲一下xaml中的注解。
应用<!– 注解內容 –> 来注解一段xaml编码,可是必须留意一下几个方面:
1.注解只有发生在逐渐标识和完毕标识中间,也就是只有发生在內容地区
2.不可以注解标识的特性
3.不可以嵌入应用注解
这节告一段落…
关注不迷路
扫码下方二维码,关注宇凡盒子公众号,免费获取最新技术内幕!
评论0