当前位置: 首页 > wzjs >正文

磁力网站怎么做的郑州的网络科技有限公司

磁力网站怎么做的,郑州的网络科技有限公司,泰州城乡建设局网站,网站建设的步骤教学什么叫WPF的资源(Resource) 资源是保存在可执行文件中的一种不可执行数据。WPF中资源用ResourceDictionary类表示,这个类就是一个字典,字典的key和value都是object类型。所以在WPF中,资源可以可以是图像、字符串等所有的任意CLR对象&#xf…

什么叫WPF的资源(Resource)

资源是保存在可执行文件中的一种不可执行数据。WPF中资源用ResourceDictionary类表示,这个类就是一个字典,字典的key和value都是object类型。所以在WPF中,资源可以可以是图像、字符串等所有的任意CLR对象,只要对象有一个默认的构造函数和独立的属性。 也就是说,应用程序中非程序代码的内容,比如点阵图、颜色、字型、动画/影片档以及字符串常量值,可将它们从程序中独立出来,单独包装成"资源(Resource)"。 静态资源(Static Resource),动态资源(Dynamic Resources)。这两者的区别是:静态资源在第一次编译后即确定其对象或值,之后不能对其进行修改。 动态资源则是在运行时决定,当运行过程中真正需要时,才到资源目标中查找其值。因此,我们可以动态地修改它。由于动态资源的运行时才能确定其值,因此效率比静态资源要低。

在WPF中,StaticResource 和 DynamicResource 是用于引用资源(如样式、模板、颜色等)的两种方式。它们的主要区别在于资源的解析时机和适用场景。StaticResource静态资源只会被加载一次,在整个WPF的生命周期中不会再次修改。DynamicResource动态资源在运行时可随便变化的资源。

下面我们从资源的加载时机、性能和使用场景 三个方面依次介绍这两种资源。

StaticResource

加载时机:在 XAML 加载时(编译时)解析资源。
性能:性能较高,因为资源在加载时就被解析并固定下来。
适用场景:适用于资源在运行时不会发生变化的情况。

DynamicResource

加载时机:在运行时(需要时)解析资源。
性能:性能稍低,因为资源在运行时动态查找。
适用场景:适用于资源可能在运行时发生变化的情况,例如支持主题切换。

介绍完这两种资源的主要概念和区别之后,接下来我们就来介绍下,如何在WPF中使用这两种资源。

StaticResource

WPF中,静态资源可以定义在独立的xaml资源 文件中、可以定义在窗体的xaml文件中、可以定义在App.xaml全局文件、定义在控件模板或者样式中。

1、在独立的资源文件中定义xaml文件

我们定义一个单独的资源文件Res.xaml,里面定义一个资源。内容 如下:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"><SolidColorBrush x:Key="PrimaryBrush" Color="Blue"></SolidColorBrush>
</ResourceDictionary>

然后我们在MainWindow.xaml可以直接引用这个资源文件,然后使用这个静态资源PrimaryBrush

<Window.Resources><ResourceDictionary><ResourceDictionary.MergedDictionaries><ResourceDictionary Source="Res.xaml"/></ResourceDictionary.MergedDictionaries></ResourceDictionary>
</Window.Resources>
<Grid><Button Content="test" Background="{StaticResource PrimaryBrush}"></Button>
</Grid>

2、在窗体的xaml文件中定义资源

我们在MainWindow.xaml中可以直接定义资源,然后引用。

<Window.Resources><ResourceDictionary><SolidColorBrush x:Key="PrimaryBrush" Color="Blue"></SolidColorBrush></ResourceDictionary>
</Window.Resources>
<Grid><Button Content="test" Background="{StaticResource PrimaryBrush}"></Button>
</Grid>

3、在App.xaml全局文件中定义资源

在App.xaml中定义的资源文件,可以在当前项目的任何地方直接引用。但是注意 ,第一种方法或者第二种方法也定义了相同key的静态资源,窗体中的定义和静态资源文件中的定义会覆盖App.xaml中定义的静态资源。

<Application.Resources><SolidColorBrush x:Key="PrimaryBrush" Color="Blue"></SolidColorBrush>
</Application.Resources>

4、在Style样式中定义资源

因为WPF的Style类中有一个属性表示资源,所以我们可以为Style定义静态资源,然后再Style定义中使用静态资源。

<Style TargetType="{x:Type Button}"><Style.Resources><ResourceDictionary><SolidColorBrush x:Key="ButtonForegroundBrush" Color="Red" /></ResourceDictionary></Style.Resources><Setter Property="Foreground" Value="{StaticResource ButtonForegroundBrush}" />
</Style>

StaticResource资源的查找方式

假设我们在不同的位置定义了一个同名key的静态资源,当有控件引用这个静态资源的时候,该使用哪个呢?其实静态资源的查找是有一个固定顺序的,最先查找到谁,就用谁。

(1)查找使用该资源的元素的Resource字典;
(2)顺着逻辑树向上查找父元素的资源字典,直到根节点;
(3)查找Application资源(App.xaml资源);

x:Static

StaticResource主要用于引用 XAML文件中定义的资源(如颜色、样式、模板等),在xaml加载的时候解析。但是如果我的资源不是定义在资源文件中,而是定义在一个普通类中的静态字段,该如何引用了。这个时候x:Static就派上场了,x:Static用于引用静态字段、静态属性、常量或枚举值。

假设我们定义一个类:Constants,里面有一个静态字段:AppTitle

public class Constants
{public const string AppTitle = "My Application";
}

在xaml中,我们可以直接通过x:Static引用这个资源。这里的local是一个命名空间的别名。

<Button Content="{x:Static local:Constants.AppTitle}"></Button>

DynamicResource

DynamicResource和StaticResource资源的定义方式都是一致的,唯一的不同就是,当资源内容被修改之后,静态资源引用的地方不会有任何变化。我们用下面的代码做演示:

<Window.Resources><ResourceDictionary><SolidColorBrush x:Key="PrimaryBrush" Color="Blue"></SolidColorBrush></ResourceDictionary>
</Window.Resources>
<StackPanel><Button Foreground="{StaticResource PrimaryBrush}">测试按钮</Button><Button Foreground="{DynamicResource PrimaryBrush}">测试按钮</Button><Button Click="Button_Click" Content="修改资源"/>
</StackPanel>

上面代码中有一个定义好的资源PrimaryBrush,两个Button分别以静态方式和动态方式引用。在第三个按钮的点击事件中,我们修改以下资源内容,就会发现,只有动态资源引用的地方前景色发生了变化。

private void Button_Click(object sender, RoutedEventArgs e)
{this.Resources["PrimaryBrush"] = new SolidColorBrush(Colors.Red);
}

点击按钮后,执行效果如下:

原文链接:http://cshelloworld.com/home/detail/1910955200127045632

http://www.dtcms.com/wzjs/542057.html

相关文章:

  • ps做网站大小尺寸怎样设计公司logo
  • 直接做网站的软件网页图片加载慢
  • 保健品网站源代码国家企业公示信息系统(全国)官网
  • 佛山网站建设企业网站建设项目书
  • 大学生网站规划建设比较公司网站与营销网站的不同
  • 网站开发设计需要什么证书清风WordPress
  • 第一免费营销型网站网站制作好后 怎样上线
  • 网站非法收录用户信息刚刚合肥最新通告
  • 网站开发专业的建设设想软文写作平台发稿
  • 企业网站网页设计有哪些wordpress 分类做导航栏
  • 学做网站好吗百度快速seo
  • 培训网站建设的背景做百度网站电话号码
  • 从零开始学网站建设知乎wordpress 页面查询
  • j永久网站广告网络推广
  • 石家庄做建站模板企业所得税怎么算出来
  • 2019怎么做网站赚钱电商平台发展现状与趋势
  • 北京网站优化推广效果怎样做集装箱网站
  • 个体户可以做网站建设如何做服装的微商城网站
  • 公共部门网站建设维护wordpress是干啥的
  • 建设银行不弹出网站网站开发与设计.net
  • 广州站在哪里门户网站项目开发案例
  • 网站建设为了什么南昌有限公司 网站
  • 东莞网站设计公司有哪些商城网站有哪些功能
  • 网站建设公司 壹起航网站广告调词平台
  • 山西做网站公司河北中凯建设有限公司网站
  • 163 com邮箱注册站长seo
  • 四川路桥建设股份有限公司网站aspx网站如何架设
  • 耐克运动鞋网站建设规划书框架网站怎么申请百度小程序
  • 宁夏自治区住房与城乡建设厅网站php做网站开发
  • 智能模板网站建设六台阶客户管理软件