首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

WPF,请教这段XAML如何理解

2013-04-12 
WPF,请问这段XAML怎么理解? StackPanelTextBlock NameexText Background{DynamicResource {x:Stat

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

热点排行