WPF样式和资源2


<Window.Resources>
<FontFamily x:key="ButtonFontFamily">Time New Roman</FontFamily>
<sys:Double x:key="ButtonFontSize">18</s:Double>
<FontWeight x:key="ButtonFontWeight">Bold</FontWeight>
</Window.Resources>

1:资源里定义了三个资源,分别设置对象属性
接下来应用资源:


<Button FontFamily="{StaticResource ButtonFontFamily}"
FontWeight=="{StaticResource ButtonFontWeight}"
FontSize=="{StaticResource ButtonFontSize}"
</Button>

2:另一种方式:(WPF中的一个元素都可以使用一个样式,只能使用一个样式)

创建一个独立的资源:


<Window.Resources>
<Style x:key="BigFontButtonStyle">
<setter Property="control.FontFamily" Value="Tinmes New Roman"/>
<Setter Property="control.FontSize" Value="18"/>
<Setter Property="control.FontWeight" Value="Bold"/>
</Style>
</Window.Resources>

应用这个独立的样式资源


<Button Sytle="{StaticResource BigFontButtonStyle}">a Customized</Button>

Style类的属性:
Setters:设置属性值并自动关联事件处理程序的Sette对象或EventSetter对象的集合

Triggers:能够自动改变样式设置的对象集合

Resources

BasedOn:通过该属性可以创建继承其他样式设置的更复杂样式

TargetType:该属性表示应用样式的元素的类型

3:关联的事件处理程序


<Style x:key="MouseOverHighLightStyle">
<EventSetter Event="TextBlock.MouseEnter" Handler="element_MouseEnter"/>
<EventSetter Event=="TextBlock.MouseLeave" Handler="element_MouseLeave"/>
<Setter Property=TextBlock.Padding" Value="5"/>
</Style>


private void element_MouseEnter(object sender,MouseEventArgs e)
{

((TextBlock)Senter.Background=new SolidColorBrush(Colors.LightGoldenrodYellow);

}

事件element_MouseLeave同样的道理

接下来应用给样式;


<Textklock Style="{StaticResouce MouseOverHightStyle}"> Hover Over me</Textklock >

4:简单触发器


<Style x:key="BigFontButton">
<Style.Setters>
<Setter Property="Control.FontFamily" Value="Time NEw Roman"/>
<Setter Property="Control.FontSize" Value="18"/>
</Style.Setters>

<Style.Triggers>
<Triggers Property="Control.IsFocused" Value="True">
<Setter Property="Control.Foreground" Value="darkRed"/>
</Style.Triggers>
</Style>
也可以定义多个触发器

5:比较复杂的,这里用到了”行为“:


<Style x:Key="OuterGlowStyle" TargetType="{x:Type FrameworkElement}">
<Style.Triggers>
<Trigger Property="IsFocused" Value="True">
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect BlurRadius="10" Color="Black" Direction="0" Opacity="0.6"
RenderingBias="Performance" ShadowDepth="0"/>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect BlurRadius="10" Color="Black" Direction="0" Opacity="0.6"
RenderingBias="Performance" ShadowDepth="0"/>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>

6:RelativeSource相对路径

StaticSource绝对路径

ElementSource通常绑定某个控件的Value

时间: 2024-10-08 15:10:10

WPF样式和资源2的相关文章

WPF中的资源简介、DynamicResource与StaticResource的区别(转)

什么叫WPF的资源(Resource)?资源是保存在可执行文件中的一种不可执行数据.在WPF的资源中,几乎可以包含图像.字符串等所有的任意CLR对象,只要对象有一个默认的构造函数和独立的属性. 也就是说,应用程序中非程序代码的内容,比如点阵图.颜色.字型.动画/影片档以及字符串常量值,可将它们从程序中独立出来,单独包装成"资源(Resource)". 静态资源(Static Resource),动态资源(Dynamic Resources).这两者的区别是:静态资源在第一次编译后即确定

WPF深入浅出话资源

我们把有用的东西称为资源.“兵马未动,粮草先行”-----程序中的各种数据就是算法的原料和粮草.程序中可以存放数据的地方有很多,可以放在数据库里.可以存储在变量里.介于数据库存储和变量存储之间,我们还可以把数据存储在程序主体之外的文件里.外部文件与程序主体分离,这就有可能丢失或者损坏,编译器允许我们把外部文件编译进程序主体.称为程序主体不可分割的一部分.这就是传统意义上的程序资源(也称为二进制资源). WPF不但支持程序级的传统资源,同时还推出了独具特色的对象级资源,每个界面元素都可以携带自己的

10 WPF深入浅出话资源

转载:http://blog.csdn.net/fwj380891124 我们把有用的东西称为资源."兵马未动,粮草先行". 程序中的各种数据就是算法的原料和粮草.程序中可以存放数据的地方有很多,可以放在数据库里.可以存储在变量里.介于数据库存储和变量存储之间,我们还可以把数据存储在程序主体之外的文件里.外部文件与程序主体分离,这就有可能丢失或者损坏,编译器允许我们把外部文件编译进程序主体.称为程序主体不可分割的一部分.这就是传统意义上的程序资源(也称为二进制资源). WPF不但支持程

WPF 样式和行为

样式是属性值的集合,能被应用到一个元素,类似CSS,每个控件最多只能有一个样式,通过控件的Stype属性应用样式,如下代码,其中BigFontButtonStyle是用于检索资源的关键字,也可以通过代码指定样式: <Button Padding="5" Margin="5" Name="cmd" Style="{StaticResource BigFontButtonStyle}"> </Button>

wpf样式绑定 行为绑定 事件关联 路由事件实例

代码说明:我要实现一个这样的功能  有三个window窗口  每个窗体有一个label标签  当我修改三个label标签中任意一个字体颜色的时候  其他的label标签字体颜色也变化 首先三个窗体不用贴代码了  直接添加三个就行了 样式绑定: 先添加数据源  代码如下: (注:为了防止propertyName硬编码写死   可以使用CallerMemberName附加属性来获取默认的属性名称 或者使用表达式目录树Expression<Func<T>>的方式来获取) 1 public

wpf 前台获取资源文件路径问题

1 <ImageBrush ImageSource="YT.CM.CommonUI;component/Resource/FloadwindowImage/middle.png"/> YT.CM.CommonUI  这是一个类库名字 Resource 这是类库下的文件夹 FloadwindowImage 是Resource下的文件夹 middle.png 是FloadwindowImage下的一张图片 若在使用上句在wpf前台获取该类库下的文件夹中的图片资源,可能会报该路径

WPF BitmapImage 占用资源无法释放、无法删除问题

原文:WPF BitmapImage 占用资源无法释放.无法删除问题 使用Image控件显示图片后,虽然自己释放了图片资源,Image.Source =null 了一下,但是图片实际没有释放.解决方案:修改加载方式~        public static BitmapImage GetImage(string imagePath)        {            BitmapImage bitmap = new BitmapImage();            if (File.E

WPF 样式(定义样式、引用样式、样式作用域、Trigger触发器)

1.定义 资源字典 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">   <RadialGradientBrush x:Key="mybrush">   <GradientStop

WPF之从资源字典到样式

1.首先声明静态资源 1 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 2 xmlns:sys="clr-namespace:System;assembly=mscorlib" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 4 //<S