WPF资源Resource

2017-09-09 19:05:15来源:CSDN作者:u012853614人点击

分享

资源集合:每个WPF界面元素都有一个名为Resource的属性,这个属性继承至FrameworkElement类,其类型为ResourceDictionary。ResourceDictionary能够以键值对的形式存储资源,当要使用到某个资源的时候,使用键值对的形式获取资源对象。

Key特性:以名称控件前缀x:开头。这会将画刷放置到xaml名称空间中,而不是wpf名称空间中

资源查找:再查找资源时,先查找控件自己的Resource属性,如果没有这个资源程序会沿着逻辑树向上一级进行查找,如果连最顶端容器都没有这个资源,程序就会查找Application.Resource(也就是程序的顶级资源)。如果还没有找到,那么就只能抛出异常了,不在同一个集合的key可以同名。

<Window x:Class="Source.MainWindow"        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"        Title="MainWindow" Height="350" Width="525">    <Window.Resources>        <!--静态资源在第一次创建窗口时一次性的设置完毕,动态资源如果发生了改变,则会重新引用资源-->            <ImageBrush x:Key="TileBrush" TileMode="Tile" ViewportUnits="Absolute"                  Viewport="0 0 32 32" ImageSource="happyface.jpg" Opacity="0.3"/>    </Window.Resources>    <Grid>        <!--下面的代码检索资源,并将资源指定给Button.Background, 可以使用动态资源执行相同的操作,但开销稍大-->        <Button Background="{StaticResource TileBrush}" Margin="5" Padding="5" FontWeight="Bold" FontSize="14" HorizontalAlignment="Left">           Tiled Button         </Button>        <!--动态添加资源-->        <Button Background="{DynamicResource TileBrush}" Margin="5" Padding="5" FontWeight="Bold" FontSize="14" HorizontalAlignment="Right" Content="动态资源">            <Button.Resources>                <ImageBrush x:Key="TileBrush" TileMode="Tile" ViewportUnits="Absolute"                   Viewport="0 0 32 32" ImageSource="ok.jpg" Opacity="0.3"/>            </Button.Resources>        </Button>    </Grid></Window>


最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台