• wpf 资源


    wpf的资源是很有意思的东西,仅次于binding和依赖属性之类。

    资源分为几种,其一是自定义的,也就是说写在资源字典中的,比如,我新建了一个资源字典

    1、逻辑资源

    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
        <ResourceDictionary.MergedDictionaries >
            <ResourceDictionary Source="color.xaml"/>
        </ResourceDictionary.MergedDictionaries>

    /*这一段代码是引用另外一个资源字典,那个字典只是一个颜色字典*/

        <LinearGradientBrush x:Key="BrushMainWindow">
            <GradientStop Offset="0" Color="SteelBlue"/>
            <GradientStop Offset="0.5" Color="red"/>
            <GradientStop Offset="1" Color="SteelBlue"/>
        </LinearGradientBrush>

    /*Look,上面我定义了一个简单的线性背景,在window1的xaml 中

    <Grid Background="{StaticResource BrushMainWindow}">就可以使用了!

    Look,只需要使用StaticResource就可以自动寻找,如果找不到或者么有引用资源字典,就会报错

    */

    <Style x:Key="DemoAreaBackgroundStyle" TargetType="Rectangle" >
            <Setter Property="Fill" Value="SteelBlue" />
            <Setter Property="OpacityMask">
                <Setter.Value>
                    <RadialGradientBrush>
                        <GradientStop Color="#FF000000" Offset="0"/>
                        <GradientStop Color="#AA000000" Offset=".6"/>
                        <GradientStop Color="#00FFFFFF" Offset="1"/>
                    </RadialGradientBrush>
                </Setter.Value>
            </Setter>
        </Style>

    /*Look,定义了一个简单的Rectangle样式,在window1的xaml 中

    <Rectangle Style="{StaticResource DemoAreaBackgroundStyle}"></Rectangle>就可以使用了!

    */

    </ResourceDictionary>

    /*这里的staticresource 就是引用静态资源的标识符,{}是一个标示这是引用的意思,大概是这么理解啦!这也就是所谓的逻辑资源*/

    2、二进制资源

    这个没有什么太不了的,如果 一个背景图片要使用,你必须寻找一个图片,而且这图片还要包含在项目中,这种包含就是所谓的二进制转化,引用的时候,就可以直接引用资源,比如,你把一个fish.png放在了image文件夹中,使用的时候直接:

     <Image Height="21" Source="image\fish.png"></Image>就可以使用了!

    大概就是这个意思!

    3、动态资源

    貌似是寻找方式不一样,没用过,用的时候再写!

    恩,已经用到了。。。。可以继续写了!

    <Style x:Key="DemoAreaBackgroundStyle" TargetType="Rectangle" >
            <Setter Property="Fill" Value="SteelBlue" />
            <Setter Property="OpacityMask">
                <Setter.Value>
                    <RadialGradientBrush>
                        <GradientStop Color="#FF000000" Offset="0"/>
                        <GradientStop Color="#AA000000" Offset=".6"/>
                        <GradientStop Color="#00FFFFFF" Offset="1"/>
                    </RadialGradientBrush>
                </Setter.Value>
            </Setter>
        </Style>

    /*Look,定义了一个简单的Rectangle样式,在window1的xaml 中

    <Rectangle Style="{StaticResource DemoAreaBackgroundStyle}"></Rectangle>就可以使用了!

    */

    上面的使用方法只是在xmal中,如果在cs代码中,可以用另一种方式调用

    rect.Style=this.FindResource("DemoAreaBackgroundStyle") as Style;

    这里的rect当然是一个Rectangle类型了,这个你还必须在xmal中引用资源

    <Window.Resources>
            <ResourceDictionary Source="typecolor.xaml"/>
        </Window.Resources>

    貌似不引用是不行滴!

    ok!资源应用大抵如此,wpf没有想象那么难,当然,也不简单。。。

  • 相关阅读:
    网页收藏
    background 和IMG的差异
    cefsharp开发实例1
    Node.js系列之node.js初探
    sublime3安装package controller遇到的问题
    java 指定日期加指定天数
    svn 命令
    mac下nodejs 更新到最新版本的最新方法
    mac系统安装redis
    sublime 安装插件
  • 原文地址:https://www.cnblogs.com/fish124423/p/2507379.html
Copyright © 2020-2023  润新知