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 ...
随机推荐
- WPF中窗口控件的跨线程调用
在WinForm中,我们要跨线程访问窗口控件,只需要设置属性CheckForIllegalCrossThreadCalls = false;即可. 在WPF中要麻烦一下,同样的不允许跨线程访问,因为没 ...
- VS编译出现 HTTP 错误 403.14 - Forbidden 决绝办法
决绝办法: 运行cmd命令,在控制台面板计入Iis Express目录下.运行提示的的就可以了 appcmd set config /section:system.webServe ...
- StarUML启动时候出现"System Error. Code:1722. RPC服务器不可用."错误的解决办法
StarUML是用得很顺手的UML工具,但是启动时候每次都会出现"System Error. Code:1722. RPC服务器不可用."错误. 一般来说这个应该是某个Window ...
- Java SpringMvc+hibernate架构中,调用Oracle中的sp,传递数组参数
一.问题 我们调用数据,大都是可以直接获取表中的数据,或者用复杂点的sql语句组成的.但是,有时候,当这样达不到我们要的全部数据的时候,这时,我们就用到了存储过程[sp],如果sp需要参数是数组的话, ...
- 在github上搭建博客(使用Jekyll)
简单说,只需要三步,就可以在 Github 搭建起一个博客: 在 Github 上建一个名为 xxx.github.io 的库: 把看中了的 Jekyll 模板 clone 到本地: 把这个模板 pu ...
- Win32中GDI+应用(五)--GDI与GDI+编程模型的区别
在GDI里面,你要想开始自己的绘图工作,必须先获取一个device context handle,然后把这个handle作为绘图复方法的一个参数,才能完成任务.同时,device context ha ...
- ACM hdu 1019 Least Common Multiple
Problem Description The least common multiple (LCM) of a set of positive integers is the smallest po ...
- Mysql创建删除索引
1.查看某个表中的索引 show index from 表名 2.为某个表创建索引 alter table 表名 add index 索引名(列名) //此种方式创建一般的索引 alter ta ...
- Mysql中explain命令查看语句执行概况
Mysql中可以使用explain命令查看查询语句的执行方式,使用方法举例:explain + 查询语句 例如:explain select * from user_info 几个重要的字段说明: t ...
- gridview列前加复选框需要注意的一点
前言 获取gridview每一列前面的复选框,然后获取选中的这一行的id.aspx页面,我不喜欢用这个,有的公司用自己封装的,基本上都是用封装的,这是我知道的.也有用Repeater的.可能是因为gr ...