WPF中的样式

wpf中的资源和样式有很大关联

wpf的窗口样式设计模式和web方式很一样。可以单独设置某个控件的样式,也可以设置一个公用的样式和htm中css方式很一样

wpf中window和page两个图形界面,都可以设计独立公共样式
在window中可以这样定义
<Window.Resources>//资源。在资源中写样式style
        <Style TargetType="TextBlock">//就就是一个样式,相当于css中样式类。targettype是样式的作用对象。这里面省略了X:key相当于这个样式的ID。这样的话这个样式就应用到这个window中所有的textbloack控件了。
            <Setter Property="HorizontalAlignment" Value="Center"></Setter>///属性和value对应
            <Setter Property="FontFamily" Value="Comic Sans MS"/>
            <Setter Property="FontSize" Value="14"/>

        </Style>
    </Window.Resources>
Page中也是同样的设置。只是将Window.Resources改为Page.Resources

当然某个windows或page中设置的样式只能本窗口使用。
但是也有个全局的应用程序级别的样式。那就是在App文件中设置  <Application.Resources>。这样的话其他页面和窗口都可以使用其中的样式

样式的扩展或继承
经常会有这个情况。你设置了某个公用样式。但是某些控件可能要在这个公用样式的基础上坐些不同的设置。最好的方法就是写一个新样式可以继承原来的老样式,然后添加一些新的属性。style的baseon属性提供了这个功能

比如样式
<Style x:Key="Style1"> <Setter Property="Control.Background" Value="Yellow"/> </Style>
新的样式可以这样写:
<Style x:Key="Style2" BasedOn="{StaticResource Style1}"> <Setter Property="Control.Foreground" Value="Blue"/> </Style>
你们style2就是背景为yellow,前景为blue的样式了。
basedOn用法比较简单,BasedOn="{StaticResource Style1}"//指定以前样式的x:key就可以。但是前面举的例子么呀x:key属性,那就可以这样写:BasedOn="{StaticResource {x:Type TextBlock}}"

也可以通过编程方式来设置样式,比如
textblock1.Style = (Style)(this.Resources["TitleText"]);

使用xaml方式使用样式

Style="{StaticResource StyleName}"





本文使用Blog_Backup未注册版本导出,请到soft.pt42.com注册。

原文地址:https://www.cnblogs.com/zjypp/p/2319384.html