wpf 资源的重用
资源的利用
1) Window.Resource
<Window.Resource>
<ImageBrush x:Key="TitleBrush" TileMode="Tile" Opacity="0.3" ImageSource="happyface.jpg" >
</ImageBrush>
</Window.Resource>
引用
<Button Background="{ StaticResource TileBrush}" >
2) style
<Style x:Key="BigFontButtonStyle">
<Style.Setters>
<Setter Property="Control.FontFamily" Value=" Times Nem Roman" />
<Setter Event="Control.MouseLeave" Handler="element_MouseLeave" />
</Style.Setters>
<Style.Triggers>
//属性值发生变化
<Trigger Property="Control.IsFocused" Value="True" >
<Setter Property="Control.Foreground" Value="Darked" />
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Conditon Property="Control.IsFocued" value="True">
<Conditon Property="Control,IsMouseOver" value="True">
</MultiTrigger.Conditions>
<MultiTrigger.Setters>
<Setter Property="Control.Foreground" Value="Darked">
</MultiTrigger.Setters>
</MultiTrigger>
//事件发生变化
<Style.Triggers>
<EventTrigger RouteEvent="Mouse.MouseEnter" >
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Duration="0:0:0.2" Storyboard.TargetProperty="FontSize"
To="22" />
</Storyboard>
</BeginStoryboard>
<EventTrigger.Actions>
</EventTrigger>
</Style.Triggers>
</Style.Triggers>
</Style>
3)数据模板和控件模板
其一
<ListBox x:Name="ListBox_PeopleList" ItemTemplate="{StaticResource MyTemplate}" />
<Window.Resources>
<!--列表模板-->
<DataTemplate x:Key="MyTemplate" DataType="{x:Type demo:People}">
<Grid VerticalAlignment="Center" HorizontalAlignment="Center"
Margin="4,4,4,4" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Image Source="{Binding Photo}" Width="50" Height="50"
Grid.Column="0" Grid.RowSpan="1"/>
<TextBlock Text="{Binding Name}" Grid.Column="1"
Grid.ColumnSpan="1" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</DataTemplate>
</Window.Resources>
其二
<DataTemplate x:Key="hightlightTmp">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<StackPanel Margin="0,5,0,0" Grid.Row="0" Orientation="Horizontal">
<TextBlock Margin="2,0" FontWeight="Bold" FontSize="14">
<TextBlock.Text>
<Binding Path="Name"
StringFormat="姓名:{0}"/>
</TextBlock.Text>
</TextBlock>
<TextBlock Margin="20,0">
<TextBlock.Text>
<Binding Path="Age"
StringFormat="年龄:{0}"/>
</TextBlock.Text>
</TextBlock>
</StackPanel>
<TextBlock Margin="0,2,0,5" Grid.Row="1">
<TextBlock.Text>
<Binding Path="Email"
StringFormat="电邮:{0}"/>
</TextBlock.Text>
</TextBlock>
</Grid>
</DataTemplate>
<Style x:Key="cmbStyle" TargetType="{x:Type ComboBoxItem}">
<Style.Triggers>
<Trigger Property="IsHighlighted" Value="True">
<Setter Property="ContentTemplate"
Value="{StaticResource hightlightTmp}"/>
</Trigger>
</Style.Triggers>
</Style>
控件模板
<Button Content="看看我的变化" Height="59" HorizontalAlignment="Left" Margin="99,88,0,0" Name="button1"
VerticalAlignment="Top" Width="94" Background="#FFB4AEFC">
<Button.Template>
<ControlTemplate>
<!--定义视觉树-->
<Grid>
<Ellipse Height="{TemplateBinding Control.Height}"
Fill="{TemplateBinding Button.Background}"
Width="{TemplateBinding Button.Width}" />
<TextBlock Name="txtBlock" Margin="{TemplateBinding Button.Padding}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Text="{TemplateBinding Button.Content}"
/>
</Grid>
<!--定义视觉树结束-->
<!--定义触发器-->
<ControlTemplate.Triggers>
<Trigger Property="Button.IsMouseOver" Value="True">
<Setter Property="Button.Foreground" Value="Red"/>
</Trigger>
</ControlTemplate.Triggers>
<!--定义触发器结束-->
</ControlTemplate>
</Button.Template>
</Button>
wpf 资源的重用的更多相关文章
- WPF快速入门系列(6)——WPF资源和样式
一.引言 WPF资源系统可以用来保存一些公有对象和样式,从而实现重用这些对象和样式的作用.而WPF样式是重用元素的格式的重要手段,可以理解样式就如CSS一样,尽管我们可以在每个控件中定义格式,但是如果 ...
- 九,WPF资源
WPF资源的优点 WPF资源系统是一种保管一系列有用对象的简单方法,从而可以更容易地重用这些对象,它主要有以下优点: 高效,通过资源可以定义一个对象,并在标记中的多个地方重用,这会使代码变的更加精简, ...
- WPF 10天修炼 第七天- WPF资源、样式、控件模板
WPF资源 对象资源 WPF允许在XAML标记的任意位置定义资源.比如在特定的控件.窗口或应用程序级别定义资源,WPF资源系统提供的对象资源有如下好处: 1. 高效:使用对象资源可以在一个地方定义而 ...
- WPF快速入门系列(6)—— WPF资源和样式
一.引言 WPF资源系统可以用来保存一些公有对象和样式,从而实现重用这些对象和样式的作用.而WPF样式是重用元素的格式的重要手段,可以理解样式就如CSS一样,尽管我们可以在每个控件中定义格式,但是如果 ...
- [原创]WPF资源Binding自定义集合类。
简单介绍一下Wpf资源字典: 每个WPF界面元素都有一个名为Resource的属性,这个属性继承至FrameworkElement类,其类型为ResourceDictionary.ResourceDi ...
- WPF资源
在WPF中.有着两种资源, 一种是组件资源:又被称为程序集资源,以二进制存在编译后的程序集中,通常用于存放图片或其他音频文件. 第二种是对象资源:通常放于xaml中.比如WPF的样式和数据绑定特性. ...
- 在独立的文件里定义WPF资源
一.文章概述 本演示介绍怎样在单独的文件里定义WPF资源.并在须要的地方调用相关资源文件. 相关下载(代码.屏幕录像):http://pan.baidu.com/s/1sjO7StB 在线播放:htt ...
- 避免让WPF资源字典变得杂乱臃肿
原文:避免让WPF资源字典变得杂乱臃肿 避免让WPF资源字典变得杂乱臃肿 周银辉 今天看到项目种的一个XXXResource.xaml文件代码 ...
- WPF 资源(StaticResource 静态资源、DynamicResource 动态资源、添加二进制资源、绑定资源树)
原文:WPF 资源(StaticResource 静态资源.DynamicResource 动态资源.添加二进制资源.绑定资源树) 一.WPF对象级(Window对象)资源的定义与查找 实例一: St ...
随机推荐
- C语言 打印圣诞树
再回首<C语言编程基础>,其中不少当年老师出的题,做完后稍微做了下修改,可以输入任意行数来打印圣诞树,行数越大,树越大,当然显示器也要越大,不然就折行了. 纯粹练手跟加强记忆的东西,做个记 ...
- linux lsof nmap netstat
lsof -i :22 # 显示22端口当前运行的程序 lsof -c ssh # 显示ssh进程打开的文件 lsof -p 2120 #显示进程id2120打开的文件 nmap -sP ...
- JS获取URL的参数
function request(paras) { var url = location.href; , url.length).split("&"); var paraO ...
- 牛皮市和猴市的好工具和指标:BOLL
(转贴)布林线BOLL用法 布林线是股市中经常用到的技术指标之一,它反映了股价的波动状况.山版软件指标图中的布林线由三条组成,上边的白线(up)是阻力线,下边的黄线(down)是支撑线,中间的粉红线( ...
- C#当中的多线程_线程池
3.1 简介 线程池主要用在需要大量短暂的开销大的资源的情形.我们预先分配一些资源在线程池当中,当我们需要使用的时候,直接从池中取出,代替了重新创建,不用时候就送回到池当中. .NET当中的线程池是受 ...
- 将decimal类型的数值后面的0和.号去掉
今天在群里面看到有朋友在问如下的需求,想到以前在写项目时也遇到这种处理数值的需求,所以写一个例子贴在博客里. 需求:在许多显示货币值时,可能需要截取掉后面的0,显示小数值或者整型值. 举例:(1)数据 ...
- 查看Safari和钥匙串中的密码
Safari Safari的同步书签功能很棒,还可以看到其他设备没关掉的网页.为了省时间,一些经常进的网站,比如博客,邮箱等,我都会选择让Safari保存密码,还使用iCloud同步!因为一直很放心苹 ...
- Eclipse反编译工具Jad及插件
Eclipse反编译工具Jad及插件下载路径 http://download.csdn.net/detail/lijun7788/9689312 http://files.cnblogs.com/fi ...
- 求两个数的最大公约数(Euclid算法)
求两个数 p 和 q 的最大公约数(greatest common divisor,gcd),利用性质 如果 p > q, p 和 q 的最大公约数 = q 和 (p % q)的最大公约数. 证 ...
- PC10303/UVA10252
一开始看错题啦,以为是最长公共字序列的变题,认真一看,原来是排列后的最长公共序列,本来想着排序后,从小到大共同就输出的,但是认真一想,根本没必要,我有bitmap啊!之后哗啦啦地码完了,发现一个神奇的 ...