精华内容
下载资源
问答
  • winform调用全局wpf资源样式,可以调用相对路径的xaml也可以调用绝对路径的xaml。
  • 资源字典文件封装到DLL中(如按钮样式),以URL加载资源文件形式和编写资源类代码两种方法使用。
  • 很多时候我们希望复用WPF中的样式,而通过复制一长串样式代码至XAML中的静态资源显得极为不雅,导致代码不易于管理。 而想要改变这种模式有两种方式:(1)新增“资源字典”项目,将样式代码写入该文件中,使用时只...

    很多时候我们希望复用WPF中的样式,而通过复制一长串样式代码至XAML中的静态资源显得极为不雅,导致代码不易于管理。

    而想要改变这种模式有两种方式:(1)新增“资源字典”项目,将样式代码写入该文件中,使用时只需引用该文件即可;(2)将上述的“资源字典”放到一个类库项目中,生成程序集,其他项目想要使用时需引用该程序集,然后添加对应的样式文件路径即可。

    方法1:

    在生成exe的程序中,需要设定关键词(Key),控件引用时加 Resources属性

    方法2:

    <Window.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/Windows.Theme;component/Theme.xaml" />
                <ResourceDictionary Source="/Windows.WPFStyle;component/TextBoxTipStyle.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Window.Resources>
    

    图中显示为引用“Windows.Theme”程序集,样式文件名为“AppButtonStyle.xaml”,而Button所引用的具体样式为“AppColorChange”。

    参考资料:

    如何从外部文件或程序集加载WPF样式或其他静态资源?

    展开全文
  • 我试图从WPF自定义控件库实际上从其他文件加载WPF样式但我没有加载这里是我的解决方案.该解决方案包含两个项目>类型WPF自定义控件库的WpfTestControls> WPF应用程序库类型的WpfTestApp,它引用了...

    我试图从

    WPF自定义控件库实际上从其他文件加载WPF样式

    但我没有加载这里是我的解决方案.

    该解决方案包含两个项目

    >类型WPF自定义控件库的WpfTestControls

    > WPF应用程序库类型的WpfTestApp,它引用了WpfTestControls

    来自WPF应用程序库的MainWindow.xaml

    来自WPF自定义控件库的Generic.xaml

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    来自WPF自定义控件库的TextBoxStyle.xaml

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    我的AssemblyInfo.cs文件包含以下内容

    [assembly: ThemeInfo(

    ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located

    //(used if a resource is not found in the page,

    // or application resource dictionaries)

    ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located

    //(used if a resource is not found in the page,

    // app, or any theme specific resource dictionaries))]

    但我仍然没有加载风格.

    如果我使用不使用Generic.xaml一切正常,例如下面的代码按预期工作

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    Title="MainWindow" Height="350" Width="525">

    我究竟做错了什么 ?

    提前致谢

    展开全文
  • WPF样式图片按钮

    2016-11-28 14:34:15
    WPF按钮图片触发事件,image button,资源加载样式可以自己更改,高清矢量按钮图集
  • "WPF后台动态调用样式文件"一文对应的工程项目代码
  • WPF 资源动态加载

    2020-12-11 15:21:06
    LoadStyleResource(@"Resources/style/...窗体动态加载样式 private void Window_Initialized(object sender, EventArgs e) { this.AllowsTransparency = true; this.Style = (Style)this.FindResourc...

     

    
                LoadStyleResource(@"Resources/style/ResourceDictionary.xaml");

    窗体动态加载样式

      private void Window_Initialized(object sender, EventArgs e)
            {
                this.AllowsTransparency = true;
                this.Style = (Style)this.FindResource("window_Shadow");
            }
    

     

    展开全文
  • WPF 样式资源

    2017-04-10 10:33:02
    样式Style的使用 控件的Sytle属性可以赋予附带Setter的Style元素。Setter元素定义Property和Value属性,并给指定的属性设置一个值。 直接通过Button控件设置Style,设置Background,FontSize,FontWeight属性。把...

    样式Style的使用


    控件的Sytle属性可以赋予附带Setter的Style元素。Setter元素定义Property和Value属性,并给指定的属性设置一个值。


    直接通过Button控件设置Style,设置Background,FontSize,FontWeight属性。把Style设置TargetType为Button,以便直接访问Button的属性。

            <Button Width="150" Height="50" Content="Click Me!">
                <Button.Style>
                    <Style TargetType="Button">
                        <Setter Property="Background" Value="Yellow"/>
                        <Setter Property="FontSize" Value="14"/>
                        <Setter Property="FontWeight" Value="Bold"/>
                    </Style>
                </Button.Style>
            </Button>

    如果没有设置样式的TargtType,就可以通过Button.Background,Button.FontSize访问属性。如果需要设置不同元素类型的属性时,这就很重要。

            <Button Width="150" Height="50" Content="Click Me!">
                <Button.Style>
                    <Style>
                        <Setter Property="Button.Background" Value="Yellow"/>
                        <Setter Property="Button.FontSize" Value="14"/>
                        <Setter Property="Button.FontWeight" Value="Bold"/>
                    </Style>
                </Button.Style>
            </Button>


    样式可以放在资源中,以实现共享的目的。

    第一种样式赋予了Button类型的所有元素。把一个样式赋予某一类型的所有元素,使用Style的TargetType属性,并指定x:Type

    第二种样式使用一个键,x:Key    单一元素组件可以引用此样式

        <Window.Resources>
            <Style TargetType="{x:Type Button}">
                <Setter Property="Background" Value="Yellow"/>
                <Setter Property="FontSize" Value="18"/>
            </Style>
            
            <Style x:Key="BtnSytle">
                <Setter Property="Button.Background" Value="Red"/>
                <Setter Property="Button.FontSize" Value="18"/>
            </Style>
        </Window.Resources>
    两种样式的使用,第一个按钮没有指定样式属性,而是使用的Button类型定义的样式,第二个按钮指定了Style并使用StaticResource指定了样式资源的键值BtnStyle

            <StackPanel Orientation="Vertical">
                <Button Width="150" Height="50" Content="Click Me!"/>
                <Button Width="150" Height="50" Content="Click Me!" Style="{StaticResource BtnSytle}"/>
            </StackPanel>


    资源

    样式通常存储在资源中。

    基类FrameworkElement定义ResourceDictionary类型的Resources属性。所有派生自FrameworkElement所有类(任意WPF元素)都可以定义Resources资源。

    上面示例资源用Window元素定义,它就会应用于Window的所有子元素,同理可以单独设置Grid,StackPanel等元素的资源,它就会应用于当前元素的所有子元素。


    如果需要将一个样式应用于多个窗口,就可以用应用程序定义样式。在App.xaml中可定义应用程序的全局资源。

    <Application x:Class="WpfApplication1.App"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                 Startup="Application_Startup">
        <Application.Resources>
            <Style TargetType="{x:Type Button}">
                <Setter Property="Background" Value="Yellow"/>
                <Setter Property="FontSize" Value="18"/>
            </Style>
    
            <Style x:Key="BtnSytle">
                <Setter Property="Button.Background" Value="Red"/>
                <Setter Property="Button.FontSize" Value="18"/>
            </Style>
    
        </Application.Resources>
    </Application>


    从代码中访问资源

    基类FrameworkElement实现FindResource()方法,所以每个WPF元素对象调用FindResource()方法,按照层次结构搜索资源。

            <StackPanel Orientation="Vertical">
                <StackPanel.Resources>
                    <Style x:Key="BtnStyle">
                        <Setter Property="Button.Background" Value="Red"/>
                        <Setter Property="Button.FontSize" Value="18"/>
                    </Style>
                </StackPanel.Resources>
                <Button Width="150" Height="50" Content="Click Me!" Click="Button_Click" Focusable="False"/>
            </StackPanel>

            private void Button_Click(object sender, RoutedEventArgs e)
            {
                Control ctrl = sender as Control;
                ctrl.Style = ctrl.FindResource("BtnStyle") as Style;
            }


    动态资源

    StaticResource标记扩展,是在加载期间搜索资源。如果在运行程序过程中改变了资源,就应该使用DynamicResource标记扩展


    资源字典

    如果相同的资源可用于不同的应用程序,把资源放在一个资源字典中比较有效。使用资源字典可以在多个应用程序之间共享文件。也可以吧资源字典放在一个程序集中,供应用程序共享。

    创建资源字典:右击项目-添加-资源字典

    创建Dictionary1.xaml

    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
        <Style TargetType="{x:Type Button}">
                <Setter Property="Background" Value="Yellow"/>
                <Setter Property="FontSize" Value="18"/>
            </Style>
    
            <Style x:Key="BtnSytle">
                <Setter Property="Button.Background" Value="Red"/>
                <Setter Property="Button.FontSize" Value="18"/>
            </Style>
    </ResourceDictionary>

    对应目标项目,需要把此资源字典添加到App.xaml中引用。使用方式就跟在App声明全局资源一样。

    <Application x:Class="WpfApplication1.App"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                 Startup="Application_Startup">
        <Application.Resources>
           
            <ResourceDictionary>
                <ResourceDictionary.MergedDictionaries>
                    <ResourceDictionary Source="Dictionary1.xaml"/>
                </ResourceDictionary.MergedDictionaries>
            </ResourceDictionary>
            
        </Application.Resources>
    </Application>
    

    通过ResourceDirectionary的MergedDictionayies属性,可以添加多个资源字典文件。




    展开全文
  • 首先右击“WpfApplication”——添加——新建文件夹,取名Image 然后右击“Image”文件夹——添加——现有项 然后随便找个图片,如下图: 然后更改一下MainWindow.xaml中的代码: <Window x:Class="Wpf...
  • WPF资源生成顺序

    2019-07-12 14:06:55
    今天遇到了一个特别奇葩的问题,我编写了一个UserControl,并出于自己的需要在资源文件中编写了对应的Style,此Style中又包含一个ControlTemplate,我随手把此ControlTemplate写在了Style的下面,然后就一直报错。...
  • 综合网上资源制作的,根据那些零碎的代码组合的,高手请跳过。已经整理好,可以运行。(特别注意,只有第一个根目录树加载了右键命令,第二个没有加载,自己可以根据需要改变每个树的右键命令)
  • WPF调用图片路径,或资源图片 一、加载本项目的图片 WPF引入了统一资源标识Uri(Unified Resource Identifier)来标识和访问资源。 其中较为常见的情况是用Uri加载图像。Uri表达式的一般形式为:协议+授权+路径 协议...
  • WPF URI解读(资源文件加载)

    千次阅读 2019-10-11 11:48:45
    参考资源网...在 Windows Presentation Foundation (WPF) 中,使用统一资源标识符 (URI) 标识和加载文件的方式有很多,包括: 指定当应用程序第一次启动时显示的用户...
  • WPF动态调用资源文件

    热门讨论 2013-12-14 15:54:32
    WPF 列表选择,动态调用ResourceDictionary内资源
  • WPF中使用ListView,往往需要根据情况隐藏或显示ListView的某一列,我们当然可以通过代码来对付它(利用VisualTreeHelper.GetChild(listView)来得到某一个Column,然后隐藏它),但是,既然使用了WPF,我们就要...
  • wpf滚动条样式

    2015-11-18 14:45:08
    文件里面有两个样式资源文件,在项目的加载资源文件修改资源文件名称就可以看见两个样式风格。
  • WPF 窗体样式重写 界面优美

    千次阅读 2017-12-13 17:22:26
    WPF 窗体样式重写 界面优美 WPF 窗体样式重写 界面优美 WPF 窗体样式重写 界面优美 WPF 窗体样式重写 界面优美 WPF 窗体样式重写 界面优美 WPF 窗体样式重写 界面优美 WPF 窗体样式重写 界面优美 WPF 窗体样式重写 ...
  • WPF:动态加载控件并设置样式

    千次阅读 2013-05-17 10:58:23
    //设置按钮样式使用此种方法必须将资源文件引用到当前页面 tb.Style = Resources["MenuStyle"] as Style; //获取App.xaml中的样式 tb.Style = (Style)this.FindResource("MenuStyle"); StkPanMenu.Children.Add...
  • wpf Processbar样式

    2019-04-29 15:18:50
    processbar 样式;进度条动画直观加载动画。我去资源分默认5。
  • 最近一个没修改过的代码突然UI界面加载太慢,之前的情况都是不到1秒就加载好了,查了一天的原因是用了字体 xaml中就新增了一个lable 用i字体 <Label Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3" Content...
  • WPF资源资源字典

    千次阅读 2019-04-17 21:15:07
    静态资源是在程序载入前就对资源进行引用,类似样式资源,而动态资源是程序在运行工程中才去访问的资源,故事版资源;资源字典是个定级元素,在它里面直接封装资源供整个项目使用,在这里我就对资源和资源字典做个...
  • WPF 美化界面,样式的使用(资源)1

    千次阅读 2016-06-20 15:02:04
    在我看来,学习WPF,最重要的还是学习它的布局,样式的使用,类似于web页面布局的优点是winForm所不能及的,可以通过它灵活的布局,样式的添加,从而制作出很多很炫的界面,下面就简单的总结下关于WPF样式的几种...
  • WPF 后台读取样式文件

    2019-04-29 11:42:00
    WPF 后台读取样式文件 原文:WPF 后台读取样式文件 ResourceDictionary dic = new ResourceDictionary { Source = new Uri("Styles.xaml",UriKind.Relative) }; Style style = (Style)dic[...
  • WPF设置全局控件样式

    千次阅读 2017-04-11 14:29:18
    方法: 在资源文件APP.XAML中添加如下资源 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/200
  • 如果后台读取文件夹图片资源后最后给ListView的ItemsSource赋值,可以在前台显示加载的图片列表,但是由于加载图片需要时间,会有一段空白停顿,并且要加载的图片越大停顿的时间越长。如下图所示: 这里的解决...
  • 将不同类库共同使用的资源文件,放在一个类库中。在需要使用时,引用这个类库; 工程结构: 其中ResourceDictionary为exe程序,引用了Style类库和User类库;同时User类库引用了Style类库,为了使用Style类库中的...
  • 关于WPF资源引用问题

    千次阅读 2020-07-12 17:49:44
    WPF中没统一资源标识符用于通过多种方式标识和方式加载文件,例如 加载图片 导航到指定页 架子车数据文件 指定初始化页 另外,他还可以用来标识文件的存储位置,例如 当前程序集 引用程序集 相对于程序集的...
  • 本文转载主要是记录下在C#中如何动态使用样式。 在App.xaml文件中的Applictaion.Resources节点下添加ResourceDictionary节点: < Application.Resources > < ResourceDictionary > < ...
  • WPF后台更改样式

    2016-01-27 09:43:00
    Style btn_Orange = (Style)this.FindResource("NumberOrange"); button.Style = btn_Orange; 转载于:https://www.cnblogs.com/lhlong/p/5162247.html
  • WPF样式是重用元素的格式的重要手段,可以理解样式就如CSS一样,尽管我们可以在每个控件中定义格式,但是如果多个控件都应用了多个格式的时候,我们就可以把这些格式封装成格式,然后在资源中定义这个格式,之前...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,218
精华内容 887
关键字:

wpf样式资源加载