博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF后台设置xaml控件的样式System.Windows.Style
阅读量:5154 次
发布时间:2019-06-13

本文共 2386 字,大约阅读时间需要 7 分钟。

WPF后台设置xaml控件的样式System.Windows.Style

摘-自 :感谢 作者: IT小兵   http://3w.suchso.com/projecteac-tual/wpf-zhishi-houtai-shezhi-style.html

Style myStyle = (Style)this.FindResource("TabItemStyle");//TabItemStyle 这个样式是引用的资源文件中的样式名称

静态资源在第一次编译后即确定其对象或值,之后不能对其进行修改。动态资源则是在运行时决定,当运行过程中真正需要时,才到资源目标中查找其值。

比如:

  <Canvas Background="{DynamicResource innerLgbResource}">

StaticResources的适用场合:

(1)在资源第一次引用之后无需再修改资源的值。
(2)资源引用不会基于运行时的行为进行重新计算,比如在重新加载Page/Window的时候。
(3)当需要设置的属性不是DependencyObject或Freezable类型的时候,用StaticResource。
(4)当需要将资源编译到dll中,并打包为程序的一部份,或者希望在各应用程序之间共享时,也使用StaticResource。
(5)当需要为一个自定义控件创建一个Theme,并Theme中使用资源,就需要使用StaticResource。因为StaticResource的资源查找行为时可预测的,并且本身包含在Theme中。而对于DynamicResource,即使资源是定义在Theme中,也只能等到运行时确定,导致一些可能意料不到的情况发生。
(6)当需要使用资源设置大量的依赖属性(Dependency Property)的时候。
由于依赖属性具有属性系统提供的值缓存机制,所以,如果能在程序装载时设置依赖属性的值,这样,依赖属性就不需要检查自己的值并返回最后的有效值了。
 
Dynamic Resource一般使用在如下场合:
(1)资源的值依赖一些条件,而该条件直到运行时才能确定。
包括系统资源,或是用户可设置的资源。比如:可以创建引用系统属性诸如SystemColors,SystemFonts来设置值,而这些属性是动态的,它们的值又来自于运行环境和操作系统。
(2)为自定义控件引用或创建Theme Style。
(3)希望在程序运行期间调整资源字典的内容时。
(4)希望资源可以向前引用时(如上面在Canvas中引用innerLgbResource一样)
(5)资源文件很大,希望在运行时才加载。
(6)要创建的Style的值可能来自于其它值,而这些值又依赖于Theme或用户的设置。
(7)当引用资源的元素的父元素有可能在运行期改变,这个时候也需要使用动态资源。因为父元素的改变将导致资源查询的范围。

 

1、前台myWindow.xaml文件中的代码

2、后台myWindow.xaml.cs文件中的代码

private void Button_Click(object sender, RoutedEventArgs e) {            //动态添加子菜单            TabItem myDnymicTab = new TabItem() { Header = "用户管理", Height = 83, Width = 74 };             //设置图片            ImageBrush myImageBrush=new ImageBrush(new BitmapImage(new Uri(@"../../skin/ico/ico_PluginCleaner.png", UriKind.Relative)));            myDnymicTab.Background=myImageBrush;            //设置位置            Thickness myThickness =new Thickness(120,0,0,0);            myDnymicTab.Margin=myThickness; //设置样式 Style myStyle = (Style)this.FindResource("TabItemStyle");//TabItemStyle 这个样式是引用的资源文件中的样式名称 myDnymicTab.Style = myStyle; //添加TabItem到TabControl中  menuTab.Items.Add(myDnymicTab); menuTab.SelectedItem = myDnymicTab; }

3、App.xaml中添加样式字典文件引用

4、资源文件TabControlStyle.xaml中的样式:

转载于:https://www.cnblogs.com/nov5026/p/4767156.html

你可能感兴趣的文章
Delphi XE2 update4 很快就要来了
查看>>
Mac 关机卡住
查看>>
ssm开发随笔
查看>>
fidder使用
查看>>
circos的ubuntu和mac安装
查看>>
C - Heavy Transportation
查看>>
ubuntu的home目录下,Desktop等目录消失不见
查看>>
建立,查询二叉树 hdu 5444
查看>>
[Spring框架]Spring 事务管理基础入门总结.
查看>>
MongoDB快速入门学习笔记2 MongoDB的概念及简单操作
查看>>
2017.3.24上午
查看>>
Python-常用模块及简单的案列
查看>>
careercup-C和C++ 13.9
查看>>
flask框架中,利用数据库增删查改
查看>>
11、自定义标签
查看>>
1--单独使用jdbc开发问题总结
查看>>
LintCode 819. 单词排序
查看>>
微博项目学习笔记
查看>>
proxifier 代理bluestack
查看>>
(VC/MFC)多线程(Multi-Threading) -1. 基本概念.
查看>>