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

WPF,请问这段XAML怎么理解?
 <StackPanel>
        <TextBlock Name="exText" Background="{DynamicResource {x:Static SystemColors.ActiveCaptionBrushKey}}" Height="30" FontSize="24">清泉石上流</TextBlock>
 </StackPanel>


请问,上面这段代码,怎么理解呢?,我除了高度、字体、Name看得懂,....Background看不懂诶

------解决方案--------------------
Background 是用了动态资源DynamicResource,动态资源又引用了系统本身静态的系统颜色SystemColors类中的ActiveCaptionBrushKey属性,用来获取用于的 SolidColorBrush 的 ResourceKey 绘制活动窗口的标题栏的背景。     参考MSDN   SystemColors 类
------解决方案--------------------
DynamicResource 表示那个属性是要查找动态资源,也就是运行时解析。DynamicResource 后面跟资源名,而这个资源名则是有另一个资源{x:Static SystemColors.ActiveCaptionBrushKey}提供,这里x:Static表示后面的SystemColors.ActiveCaptionBrushKey为静态属性。
最终的意思就是,以静态属性SystemColors.ActiveCaptionBrushKey的值(字符串)为Key,查找动态资源,设置给Background属性。
------解决方案--------------------
引用:
那为什么不直接写成下面这样的呢?
Background="{x:Static SystemColors.ActiveCaptionBrushKey}"


比如我有个字典:
Key:“白色”,Value:“White”
这里传递给Background的是Value部分,而不是Key部分,但是你那个ActiveCaptionBrushKey只能得到Key,而不是Value