WPF引用外部样式

假设一个应用程序中,某个窗口需要使用样式,但是样式非常多,写在一个窗口中代码分类不方便。最好Style写在专门的xaml文件中,然后引用到窗口中,就像HTML引用外部css文件一样。

实现方法:

1、创建新建项->添加/资源字典 Style.xaml,并添加Style样式。

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <!--BaseStyle-->
    <Style x:Key="BaseStyle" TargetType="{x:Type Control}">
        <Setter Property="Margin" Value="5"/>
    </Style>
    <!--ButtonStyle-->
    <Style TargetType="{x:Type Button}" BasedOn="{StaticResource BaseStyle}">
        <Setter Property="Width" Value="80"/>
        <Setter Property="Height" Value="40"/>
        <Setter Property="Background" Value="Blue"/>
    </Style>
    <!--GroupStyle-->
    <Style TargetType="{x:Type GroupBox}" BasedOn="{StaticResource BaseStyle}"></Style>
    <!--TextBoxStyle-->
    <Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource BaseStyle}">
    </Style>
    <!--CheckBox-->
    <Style TargetType="{x:Type CheckBox}" BasedOn="{StaticResource BaseStyle}">
    </Style>
    <!--ListBox-->
    <Style TargetType="{x:Type ListBox}" BasedOn="{StaticResource BaseStyle}">
    </Style>
    <!--ProgressBar-->
    <Style TargetType="{x:Type ProgressBar}" BasedOn="{StaticResource BaseStyle}">
    </Style>
    <!--TextBlock-->
    <Style TargetType="{x:Type TextBlock}" >
        <Setter Property="Margin" Value="5" />
    </Style>
</ResourceDictionary>

2、在窗口中引用外部资源。注意:在Window中添加外部样式需要指定key,而Application中则不需要,所以这里baseResourceDictionaryStyle就是引用外部样式Style.xaml的key。

<Window x:Class="WpfApplication1.ResourceDictionary.WinResourceKey"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="WinResourceKey" Height="300" Width="300">
    <Window.Resources>
        <ResourceDictionary  >
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="Style.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Window.Resources>
    <Grid>

    </Grid>
</Window>

3、将样式应用到窗体的布局上。

<Window x:Class="WpfApplication1.ResourceDictionary.WinResourceKey"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="WinResourceKey" Height="300" Width="300">
    <Window.Resources>
        <ResourceDictionary  >
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="Style.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Window.Resources>
    <Grid>
        <Button Content="ABC" > </Button>
    </Grid>
</Window>

效果如下:

参考:http://www.cnblogs.com/therock/articles/2135997.html

WPF引用外部样式,布布扣,bubuko.com

时间: 2024-10-11 20:41:37

WPF引用外部样式的相关文章

wpf引用外部样式--------WPF

首先建一个 资源词典文件,名字叫sssss.xaml,我在里面写了几个样式...样式里也用到了触发器.每个资源标签都有一个key..引用的时候需要 然后在窗体里面xaml中引用 <Window x:Class="WPF_Tetst.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft

wpf 引用资源文件

一.什么是资源 通常使用  WPF  资源作为重用通常定义的对象和值的简单方法. 在 WPF 中资源通常用作"样式"(Style).样式模板.数据模板等. 二.资源的定义及 XAML 中引用 资源可以定义在以下几个位置: 1 应用程序级资源 定义在 App.xaml 文件中, 作为整个应用程序共享的资源存在  ; 在 App.xaml 文件中定义: <Application.Resources> <ResourceDictionary> <Resource

WPF 引用DLL纯图像资源包类库中的图片

1.建立WPF应用程序 过程略. 2.创建类库项目(图片资源包) 创建图片资源类库项目MyImages,删除class1.cs,在项目属性的资源选项中选择“图像”类型,并在“添加资源”中点击“添加现有的文件”,把图像加入到资源.并把访问修饰符改为Public. 3.在WPF应用程序中引用类库项目 在WPF中通过 MyImages.Properties.Resources.XXX即可访问图像.XXX为图像文件名(资源名称).但在WPF中的到图像还需一下工作. 4.WPF中创建Rectangle或其

WPF引用OCX导致的算术运算符溢出

原文链接http://www.ilisen.net/wpf-references-ocx-causes-an-arithmetic-operator-overflow.html 这个问题其实原因在于OCX控件与WPF类型的一些不匹配. 之前,我在我的项目里面,通过winform控件承载ocx,然后通过中 间生成的DLL来达到引用OCX的目的.一般情况下,这种方法是比较方便而且有效的(之前也是使用的这种方法),后来发现OCX报这个异常之后,不能再通 过这种方式引用了(其实方法还是这个方法,只不过稍

WPF - 引用VS2013某.dll,打造VS2013窗口

本篇目的是利用VS2013的某几个.dll文件,在WPF下打造出VS2013的窗口,说白了吧,就是借微软的VS2013窗口^_^. 这几个.dll文件是Microsoft.VisualStudio.Shell.Interop.dll.Microsoft.VisualStudio.Shell.UI.Internal.dll.Microsoft.VisualStudio.Shell.ViewManager.dll可在 需要几款软件,ILSpy和XAML Spy(我是用这俩东西找到这几个.dll的,现

微信小程序引用外部js,引用外部样式,引用公共页面模板

https://blog.csdn.net/smartsmile2012/article/details/83414642 ================小程序引用外部js====================== //封装的函数function GetUserInfo2018() { console.log("获取用户信息8888")} function count(str) { console.log(str)} //转化成小程序模板语言 这一步非常重要 不然无法正确调用mod

WPF引用资源报错

错误 System.Windows.Markup.XamlParseException:""在"System.Windows.StaticResourceExtension"上提供值时引发了异常." 解决方法 引用资源文件后使用DynamicResource绑定key(不是StaticResource) StaticResource 必须先引用资源,再绑定.资源在运行前就已经确定 DynamicResource 动态加载资源,在需要的时候才加载. 原文地址

WPF快速精通版

命名空间: xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:local="clr-namespace:UserNamespace" WPF布局 1.Cavas画布:设置坐标值来布局,分别为Top, Left, Bottom., Right 如:Canvas.SetTop(控件名, 数值); 2.DockPanel面版:为其子控件提供相对的停靠位置, 包括向左停靠(Dock.Left),向右停靠(Doc

WPF ResourceDictionary的使用

作用:一个应用程序中,某个窗口需要使用样式,但是样式非常多,写在一个窗口中代码分类不方便.最好Style写在专门的xaml文件中,然后引用到窗口中,就像HTML引用外部css文件一样. 初衷:就在于可以实现多个项目之间的共享资源,资源字典只是一个简单的XAML文档,该文档除了存储希望使用的资源之外,不做任何其它的事情. 1.  创建资源字典 创建资源字典的过程比较简单,只是将需要使用的资源全都包含在一个xaml文件之中即可.如下面的例子(文件名test.xaml,与后面的app.xaml文件中的