WPF Demo16 资源
- <Window x:Class="RescourceDemo1.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" Icon="/RescourceDemo1;component/image/test.png">
- <Window.Resources>
- <TextBlock x:Key="res1" Text="海上生明月"/>
- <TextBlock x:Key="res2" Text="海上生明月"/>
- </Window.Resources>
- <Grid>
- <Button x:Name="btnStatic" Content="{StaticResource res1}" Height="23" HorizontalAlignment="Left" Margin="211,70,0,0" VerticalAlignment="Top" Width="75" />
- <Button x:Name="btnDynamic" Content="{DynamicResource res2}" Height="23" HorizontalAlignment="Left" Margin="211,113,0,0" VerticalAlignment="Top" Width="75" />
- <Button Content="Update" Height="23" HorizontalAlignment="Left" Margin="212,162,0,0" Name="button3" VerticalAlignment="Top" Width="75" Click="button3_Click" />
- <Label Content="静态资源:" Height="28" HorizontalAlignment="Left" Margin="144,69,0,0" Name="label1" VerticalAlignment="Top" />
- <Label Content="动态资源:" Height="28" HorizontalAlignment="Left" Margin="144,108,0,0" Name="label2" VerticalAlignment="Top" />
- <Image Height="135" Source="image/test.png" HorizontalAlignment="Left" Margin="328,50,0,0" Name="image1" Stretch="Fill" VerticalAlignment="Top" Width="150" />
- </Grid>
- </Window>
- using System.Windows;
- using System.Windows.Controls;
- namespace RescourceDemo1
- {
- /// <summary>
- /// MainWindow.xaml 的交互逻辑
- /// </summary>
- public partial class MainWindow : Window
- {
- public MainWindow()
- {
- InitializeComponent();
- }
- private void button3_Click(object sender, RoutedEventArgs e)
- {
- //静态资源一旦使用,则不变
- var res1 = this.btnStatic.Content as TextBlock;
- var res2 = this.btnDynamic.Content as TextBlock;
- if (res1.Text.Equals("海上生明月")) this.Resources["res1"] = new TextBlock() { Text = "天涯共此时" };
- else this.Resources["res1"] = new TextBlock() { Text = "海上生明月" };
- //动态资源设置后,扔可能改变
- if (res2.Text.Equals("海上生明月")) this.Resources["res2"] = new TextBlock() { Text = "天涯共此时" };
- else this.Resources["res2"] = new TextBlock() { Text = "海上生明月" };
- }
- }
- }
注意:静态资源不可改变,动态资源可动态更改! <Window.Resources>,为窗体级资源。
属性资源==》
- <Window x:Class="资源1.MainWindow"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:sys="clr-namespace:System;assembly=mscorlib"
- Title="MainWindow" Height="350" Width="525">
- <Window.Resources>
- <ResourceDictionary>
- <sys:String x:Key="str">
- 我是资源——资源为属性元素
- </sys:String>
- </ResourceDictionary>
- </Window.Resources>
- <Grid x:Name="grid">
- <TextBlock x:Name="textblock" Text="{StaticResource ResourceKey=str}"/>
- </Grid>
- </Window>
- <!--
- 在上面代码中资源为属性元素,所以<ResourceDictionary>是可以省略掉的,下面是在后台的等效代码:
- this.Resources["str1"] = "我是资源";
- this.textblock.Text = this.FindResource("str1") as string;
- -->
静态、动态资源(资源为属性元素)==》
- <Window x:Class="资源2.MainWindow"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:sys="clr-namespace:System;assembly=mscorlib"
- Title="MainWindow" Height="350" Width="525">
- <Window.Resources>
- <sys:String x:Key="DynamicRes">动态资源</sys:String>
- <sys:String x:Key="StaticRes">静态资源</sys:String>
- </Window.Resources>
- <StackPanel>
- <TextBox x:Name="txt1" Text="{DynamicResource ResourceKey=DynamicRes}" Margin="10"/>
- <TextBox x:Name="txt2" Text="{StaticResource ResourceKey=StaticRes}" Margin="10"/>
- <Button x:Name="btn" Content="资源类型区分" Click="btn_Click_1" Height="25" Margin="5"/>
- </StackPanel>
- </Window>
- using System.Windows;
- namespace 资源2
- {
- /// <summary>
- /// MainWindow.xaml 的交互逻辑
- /// </summary>
- public partial class MainWindow : Window
- {
- public MainWindow()
- {
- InitializeComponent();
- }
- private void btn_Click_1(object sender, RoutedEventArgs e)
- {
- this.Resources["StaticRes"] += "静态资源发生";
- this.Resources["DynamicRes"] += "改变";
- }
- }
- }
窗体级、文件级、应用程序级、对象级资源==》
项目结构:
- App.xml==》
- <Application x:Class="资源3.App"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- StartupUri="MainWindow.xaml">
- <Application.Resources>
- <SolidColorBrush Color="Gold" x:Key="myGoldBrush" />
- </Application.Resources>
- </Application>
- 文件资源==》
- <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
- <SolidColorBrush x:Key="myWhiteBrush" Color="White" />
- </ResourceDictionary>
用法如下:
- <Window x:Class="资源3.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>
- <!--窗体级资源-->
- <!--<SolidColorBrush x:Key="myRedBrush" Color="Red" />-->
- <ResourceDictionary>
- <SolidColorBrush x:Key="myRedBrush" Color="Red" />
- <ResourceDictionary.MergedDictionaries>
- <ResourceDictionary Source="Dictionary1.xaml"></ResourceDictionary>
- </ResourceDictionary.MergedDictionaries>
- </ResourceDictionary>
- <!--文件级资源-->
- <!--<ResourceDictionary x:Key="aa" Source="Dictionary1.xaml"/>-->
- </Window.Resources>
- <StackPanel>
- <!--窗体级资源-->
- <Button Margin="5" Background="{StaticResource myRedBrush}">窗体级资源Button</Button>
- <!--应用程序级资源-->
- <Button Margin="5" Background="{StaticResource myGoldBrush}">应用程序级资源Button</Button>
- <!--文件级资源-->
- <Button Margin="5" Background="{StaticResource myWhiteBrush}">文件级资源Button</Button>
- <!--对象级资源-->
- <Button Margin="5">
- <Button.Resources>
- <SolidColorBrush x:Key="myGreenBrush" Color="Green" />
- </Button.Resources>
- <Button.Content>
- <TextBlock Text="Sample Text" Background="{StaticResource myGreenBrush}" />
- </Button.Content>
- </Button>
- </StackPanel>
- </Window>
实例二:
- App.xaml
- <Application x:Class="资源4.App"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- StartupUri="MainWindow.xaml">
- <Application.Resources>
- <!-- 应用程序级资源 -->
- <SolidColorBrush Color="Gold" x:Key="myGoldBrush" />
- <SolidColorBrush Color="Blue" x:Key="myBrush" />
- </Application.Resources>
- </Application>
- MainWindow.xaml
- <Window x:Class="资源4.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>
- <!-- 窗体级资源 -->
- <SolidColorBrush Color="White" x:Key="myWhiteBrush" />
- <SolidColorBrush Color="Green" x:Key="myBrush" />
- </Window.Resources>
- <StackPanel>
- <!-- 使用应用程序级定义的资源 -->
- <Button Margin="5" Content="使用应用程序级定义的资源" Background="{StaticResource myGoldBrush}" />
- <!-- 使用窗体级定义的资源 -->
- <Button Margin="5" Content="使用窗体级定义的资源" Background="{StaticResource myWhiteBrush}" />
- <!-- 窗体级资源的值覆盖应用程序级资源的值 -->
- <Button Margin="5" Content="窗体级资源的值覆盖应用程序级资源的值" Background="{StaticResource myBrush}" />
- <StackPanel Background="#FF999999">
- <StackPanel.Resources>
- <!-- 对象级资源 -->
- <SolidColorBrush Color="Yellow" x:Key="myYellowBrush" />
- <SolidColorBrush Color="Red" x:Key="myBrush" />
- </StackPanel.Resources>
- <!-- 使用应用程序级定义的资源 -->
- <Button Margin="5" Content="使用应用程序级定义的资源" Background="{StaticResource myGoldBrush}" />
- <!-- 使用窗体级定义的资源 -->
- <Button Margin="5" Content="使用窗体级定义的资源" Background="{StaticResource myWhiteBrush}" />
- <!-- 使用对象级定义的资源 -->
- <Button Margin="5" Content="使用窗体级定义的资源" Background="{StaticResource myYellowBrush}" />
- <!-- 使用对象级定义的资源覆盖窗体级、应用程序级定义的资源 -->
- <Button Margin="5" Content="使用对象级定义的资源覆盖窗体级、应用程序级定义的资源" Background="{StaticResource myBrush}" />
- </StackPanel>
- </StackPanel>
- </Window>

WPF Demo16 资源的更多相关文章
- WPF之资源字典zz
最近在看wpf相关东西,虽然有过两年的wpf方面的开发经验,但是当时开发的时候,许多东西一知半解,至今都是模模糊糊,框架基本是别人搭建,自己也就照着模板写写,现在许多东西慢慢的理解了,回顾以前的若干记 ...
- WPF 之 资源(Resource)
1.什么叫WPF的资源(Resource)? 资源是保存在可执行文件中的一种不可执行数据.在WPF的资源中,几乎可以包含图像.字符串等所有的任意CLR对象,只要对象有一个默认的构造函数和独立的属性. ...
- WPF 中资源路径的问题
WPF 中资源路径的问题 1. 引用当前工程的资源(注意xxxx.png的build action 应设置为Resource 或Embedded Resource) <ImageBrush Im ...
- WPF样式资源文件简单运用
WPF通过资源来保存一些可以被重复利用的样式,下面的示例展示了简单的资源样式文件的使用: 一.xaml中定义资源及简单的引用 <Window.Resources > <!--wpf窗 ...
- WPF 访问资源中的Storyboard
原文:WPF 访问资源中的Storyboard <UserControl.Resources> <Storyboard x:Key="testStoryboard" ...
- WPF学习资源整理
WPF(WindowsPresentation Foundation)是微软推出的基于Windows Vista的用户界面框架,属于.NET Framework 3.0的一部分.它提供了统一的编程模型 ...
- WPF 调用资源图片
原文:WPF 调用资源图片 最近做的wpf项目中,在开发的时候,把图片放到了bin下面,采用了imagePath =System.IO.Directory.GetCurrentDirectory()+ ...
- WPF - 资源收集
原文:WPF - 资源收集 OpenExpressApp的UI现在是使用WPF,所以熟悉WPF是必须的,以下我将可能用到的一些相关内容随时记录下来,以备查阅.此篇文章将不断更新,感兴趣的可以看看,也欢 ...
- WPF 为资源字典 添加事件响应的后台类
原文:WPF 为资源字典 添加事件响应的后台类 前言,有许多同学在写WPF程序时在资源字典里加入了其它控件,但又想写事件来控制这个控件,但是资源字典没有CS文件,不像窗体XAML还有一个后台的CS文件 ...
随机推荐
- NEO VM原理及其实现(转载)
NEO Vm原理及其实现 简介及与evm主要区别 neo vm和evm类似.底层都实现了一套opcode以及对应的执行器,opcode设计差距蛮大的,总体上来说evm的更加简洁,neo vm的功能更加 ...
- [转]Poisson Distribution
Poisson Distribution Given a Poisson process, the probability of obtaining exactly successes in tria ...
- Gym-101673 :East Central North America Regional Contest (ECNA 2017)(寒假自训第8场)
A .Abstract Art 题意:求多个多边形的面积并. 思路:模板题. #include<bits/stdc++.h> using namespace std; typedef lo ...
- 人工智能之KNN算法
转载自:https://www.cnblogs.com/magic-girl/p/python-kNN.html 基于python实现的KNN算法 邻近算法(k-NearestNeighbor) 是机 ...
- Go Example--通道方向
package main import "fmt" func main() { pings := make(chan string, 1) pongs := make(chan s ...
- Go Example--协程
package main import "fmt" func main() { //main gorouting中调用f函数 f("direct") //重新建 ...
- 紧接着上篇文章,实现类一个是标准的FIFO,一个是出队在头部入队不一定追加到末尾
注意描述:一个是插入队列(1是可以插入尾部eg一遍的序列尾部追加,2是可以插入中间eg优先队列) 而移除的描素都是删除头部 import java.util.Comparator; import ja ...
- List接口的使用方法
★List接口特点: 1.元素存储有序的集合 2.带索引的集合 3.集合中可以有重复的元素 4.常用的子类有ArrayList , LinkedList ★List接口的方法:add , rem ...
- MySQL--时间戳属性2
在MySQL 5.6版本中引入参数explicit_defaults_for_timestamp设置,该参数会影响Timestamp的默认属性. 同时在MySQL 5.6版本中中,去除一张表只能有一个 ...
- day 47 html 学习 css 学习
前端基础之CSS CSS实例 每个CSS样式由两个组成部分:选择器和声明.声明又包括属性和属性值.每个声明之后用分号结束. CSS(Cascading Style Sheet,层叠样式表)定义如何显示 ...