日期:2014-05-17  浏览次数:20871 次

WPF,标记扩展学不懂
XAML中的标记扩展简直学不懂,比如下面的代码
<StackPanel Background="{x:Static Brushes.AliceBlue}"/> 

这段代码的意思是不是把Background设置为AliceBlue?那这样写的意义在哪里?



还有下面这段代码,
<Button Background="{x:Null}"
Height="{x:Static SystemParameters.IconHeight}"
Content="{Binding Path=Height, RelativeSource={RelativeSource Self}}" />

不要说花括号内是什么东西,那些我都知道,我只想知道这样使用标记扩展的意义在哪里?只针对这段代码说

------解决方案--------------------
楼主可以先去了解下WPF/Silverlight中的资源这个概念




------解决方案--------------------
更多扩展标记,请参考MSDN,很详细的
http://msdn.microsoft.com/zh-cn/library/ms742135.aspx
------解决方案--------------------
WPF应用之"标记扩展"延缓资源分配显示 
http://news.ccidnet.com/art/32857/20100401/2025801_1.html
------解决方案--------------------
引用:
<StackPanel Background="{x:Static Brushes.AliceBlue}"/>
这段代码是啥意思,就说这个,请勿说废话

你是要知道它的意义还是意思?意义和含义是不同的概念,我都被你搞糊涂了。
------解决方案--------------------
不知道你想知道什么,什么对于你来说不是废话。我想你可能是问,为什么用xaml去定义一个界面。这样做的意义是什么。很显然,将用户界面元素的配置从代码移动到xaml中,好处是很多的,一个是,xaml的解析和操作,比直接处理源代码要容易,因为源代码可以夹杂更复杂的逻辑,因此为一个xaml脚本编写一个所见即所得的设计器要简单。另外,将界面从命令定义转化为声明式,更有利于美工的理解,以及跨语言的不同程序员的理解,对于一个以英语为母语的普通人来说,这样的描述都是简单易懂的。
------解决方案--------------------
整个xaml的意义就在于,可以让设计人员(而不是程序员)用说明性的方式来开发程序。

比如说,美工可以使用blend来开发非常复杂的程序,他们不需要编写一行代码也能做很多程序设计,那就拜xaml风格所赐才成为可能。