精华内容
下载资源
问答
  • 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样式图片按钮

    2016-11-28 14:34:15
    WPF按钮图片触发事件,image button,资源加载样式可以自己更改,高清矢量按钮图集
  • WPF中使用ListView,往往需要根据情况隐藏或显示ListView的某一列,我们当然可以通过代码来对付它(利用VisualTreeHelper.GetChild(listView)来得到某一个Column,然后隐藏它),但是,既然使用了WPF,我们就要...
    在WPF中使用ListView,往往需要根据情况隐藏或显示ListView的某一列,我们当然可以通过代码来对付它(利用VisualTreeHelper.GetChild(listView)来得到某一个Column,然后隐藏它),但是,既然使用了WPF,我们就要入乡随俗,使用模板来处理。其实模板是个好东西,他提供了非常便利的定制机制,你可以把任意可视元素定义的面目全非——当然如果你愿意

        为了增减ListView的Column,我们只需定义多个GridView资源,在运行时根据不同情况使用不同资源,就可以达到增减Column的目的。这里其实都算不上是真正的模板替换。
       
    本文附带源代码可以在这里下载到:TestListViewColumnCustom.rar
       
    下面就开始吧!
        老规矩,拖出VS2008,Create new project->WPF Application,名字就叫TestListViewColumnCustom吧,我一贯以“Test”开头命名工程,这样表明这是一个测试项目,是对ListViewColumnCustom所做的测试工程。点击OK后进入Window1.xaml设计界面,拽一个ListView进主窗口(听说通过敲Xaml代码来创建控件而不是通过“拽”来创建控件的人都是牛人,所以我喜欢敲代码;当然了,在WPF设计器不成熟的早期阶段,很多控件定制后显示不正常,你不敲代码还能去敲微软?),添加几个Column,并为窗口添加几个Label、CheckBox,运行结果如下:


    图1
    界面

    Xaml代码如下:


    复制代码
    <Window x:Class="TestListViewColumnCustom.Window1"
        xmlns
    ="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x
    ="http://schemas.microsoft.com/winfx/2006/xaml"
        Title
    ="Window1" Height="300" Width="300">
           
       
    <Grid>
           
    <Grid.RowDefinitions>
               
    <RowDefinition Height="42"/>
               
    <RowDefinition Height="32"/>
               
    <RowDefinition/>
               
    <RowDefinition Height="60"/>
           
    </Grid.RowDefinitions>
           
    <Label Margin="5" Grid.Row="0" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="18" Foreground="Maroon">List View Column Custom</Label>
           
    <CheckBox Margin="5" Grid.Row="1" Grid.Column="0" Click="CheckBox_Click" VerticalAlignment="Center">Hide Last Column</CheckBox>
           
    <ListView Name="listView1" Margin="5" Grid.Row="2" Grid.Column="0">
               
    <ListView.View>
                   
    <GridView>
                       
    <GridViewColumn Header="Name"></GridViewColumn>
                       
    <GridViewColumn Header="A" Width="60"></GridViewColumn>
                       
    <GridViewColumn Header="B" Width="60"></GridViewColumn>
                       
    <GridViewColumn Header="WillBeHiden"></GridViewColumn>
                   
    </GridView>
               
    </ListView.View>
           
    </ListView>
           
    <StackPanel Margin="5" Grid.Row="3" Grid.Column="0">
               
    <Label Foreground="Maroon">Author:He,YuanHui</Label>
               
    <Label Foreground="Maroon">Date:  2008.7.10</Label>
           
    </StackPanel>
       
    </Grid>
    </Window>

    复制代码

    给ListView添加两个(任意多个)GridView资源,拥有不同的Columns:


    复制代码

       
    <Window.Resources>
           
    <GridView x:Key="haveHidnColumn">
               
    <GridViewColumn Header="Name"></GridViewColumn>
               
    <GridViewColumn Header="A" Width="60"></GridViewColumn>
               
    <GridViewColumn Header="B" Width="60"></GridViewColumn>
               
    <GridViewColumn Header="WillBeHiden"></GridViewColumn>
           
    </GridView>
           
    <GridView x:Key="haveNoHidnColumn">
               
    <GridViewColumn Header="Name"></GridViewColumn>
               
    <GridViewColumn Header="A" Width="60"></GridViewColumn>
               
    <GridViewColumn Header="B" Width="60"></GridViewColumn>
           
    </GridView>
       
    </Window.Resources>
    复制代码

    为CheckBox添加Click处理事件:


    复制代码
            private void CheckBox_Click(object sender, RoutedEventArgs e)
           
    {
               
    // select different template
                CheckBox checkBox = sender as CheckBox;
               
    if (checkBox.IsChecked == true)
               
    {
                   
    this.listView1.View = this.Resources["haveNoHidnColumn"] as GridView;
                }

               
    else
               
    {
                   
    this.listView1.View = this.Resources["haveHidnColumn"] as GridView;
                }


               
    // rebinding data
                this.listView1.ItemsSource = null;
               
    this.listView1.ItemsSource = dataList;
            }


    复制代码

    运行,点击CheckBox,可以发现最后一列可以动态“删除”:

    图2
    WillBeHiden列将被删除

    勾选CheckBox:

    图3
    WillBeHiden列被删除

    为了显得更加真实,上面绑定了数据:


    复制代码
            public Window1()
           
    {
                InitializeComponent();

               
    // init data
                for (int i = 0; i < 5; i++)
               
    {
                    dataList.Add(
    new Data());
                    dataList[i].Name
    = "data" + (i + 1).ToString();
                    dataList[i].A
    = 1.0 + i / 10.0;
                    dataList[i].B
    = 2.0 + i / 10.0;
                }


               
    this.listView1.ItemsSource = dataList;
            }


    复制代码


    简单总结一下:思想就是,在资源中定义具有不同Column的资源,根据程序需要,为ListView绑定不同GridView,达到动态修改ListView的列的目的。

    注意,由于数据绑定的关系,替换模板后需要重新绑定一下数据:

                // rebinding data
                this.listView1.ItemsSource = null;
               
    this.listView1.ItemsSource = dataList;
    展开全文
  • 很多时候我们希望复用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引入了统一资源标识Uri(Unified Resource Identifier)来标识和访问资源。 其中较为常见的情况是用Uri加载图像。Uri表达式的一般形式为:协议+授权+路径 协议...

    WPF调用图片路径,或资源图片

    一、加载本项目的图片
    WPF引入了统一资源标识Uri(Unified Resource Identifier)来标识和访问资源。
    其中较为常见的情况是用Uri加载图像。Uri表达式的一般形式为:协议+授权+路径
    协议:pack://
    授权:有两种。一种用于访问编译时已经知道的文件,用application:///
    一种用于访问编译时不知道、运行时才知道的文件,用siteoforigin:///

    一般用逗号代替斜杠,也就是改写作application:,,,和pack:,,,
    路径:分为绝对路径和相对路径。一般选用相对路径,普适性更强

    下面,我们举一个简单的例子:
    pack://application:,,,/images/my.jpg
    当然,WPF默认Uri设置有pack://application:,,,,所以我们也可以直接将其写作:/images/my.jpg

    后边写例子程序时,为了让读者更好的了解Uri,我们都采用完整的Uri写法。
    下面在讲讲装载图片的两种方式,一种用XAML引用资源,一种用代码引用资源。

    用XAML引用资源:

    <Image Source="pack://application:,,,/images/my.jpg"/>

     也可以这样

    <Image Source="/images/my.jpg"/>

     
    用代码引用资源:

    
    Image img;
    
    img.Source=new BitmapImage(new Uri("pack://application:,,,/images/my.jpg"),UriKind.Relative);

     
    也可以直接使用代码中引用图片资源

     

    image2.Source = new BitmapImage(new Uri("/images/my.jpg", UriKind.Relative));


    二、WPF 调用资源图片

    
    imagePath = "pack://application:,,,/Solution;component/Properties/../images/star/my.jpg";
    
    imageBrush.ImageSource = new BitmapImage(new Uri(imagePath, UriKind.RelativeOrAbsolute));


    三、WPF引用外部项目资源的方法
    WPF中如果你使用的资源文件不是本程序集的,是另外的程序集,就可以这样做:
    1.引用要用的程序集,pack://application:,,,/程序集名称;component/路径 ,其中pack://application:,,,可以省略
    示例:

    <Image Source="pack://application:,,,/Skin;component/image/you.png" />

     或者

    <Image Source="/Skin;component/image/you.png" />

     

    四、使用SiteOfOrigin

    imgContent.Source = new BitmapImage(new Uri("pack://SiteOfOrigin:,,,/images/my.jpg"));

    原文转至:https://www.cnblogs.com/sntetwt/p/5402098.html

    展开全文
  • wpf滚动条样式

    2015-11-18 14:45:08
    文件里面有两个样式资源文件,在项目的加载资源文件修改资源文件名称就可以看见两个样式风格。
  • 资源字典文件封装到DLL中(如按钮样式),以URL加载资源文件形式和编写资源类代码两种方法使用。
  • WPF中提供的资源文件加载使用的Uri,用这个有个弊端,就是必须要知道文件的准确路径,然后通过Uri指定绝对或相对的地址进行加载资源,可我把样式单独封装在了一个dll中引用就很麻烦。 因为有可能放在执行目录下不同...
  • 如果后台读取文件夹图片资源后最后给ListView的ItemsSource赋值,可以在前台显示加载的图片列表,但是由于加载图片需要时间,会有一段空白停顿,并且要加载的图片越大停顿的时间越长。如下图所示: 这里的解决...
  • 如题 WPF 在开发机上样式显示正常,换到其它电脑上,所有样式都没有了,是不是资源字典没加载上去?
  • 当我们需要在程序中替换主题,更换另一套背景、颜色、样式时,如何在不修改资源Key值,直接替换呢? 问题&...加载顺序是否会冲突,比如俩个字典中都存有Image.Search图片资源,最终会以哪个字典...
  • C# WPF下自定义滚动条ScrollViewer样式

    千次阅读 2017-12-22 23:44:28
    一、实现对ScrollViewer样式的自定义主要包括: 1、滚动条宽度设置 2、滚动条颜色 3、滚动条圆角 4、滚动条拉动时的效果mouseover 二、实现效果: 三、实现方法 1、创建资源字典(ResourceDictionary)文件 由于...
  • Developer Express V9.1中的 WPF中的样式和模板是以资源的形式存在于 DevExpress.Wpf.Core.v9.1.dll中的,在程序中引用这些样式可以迅速的改善界面的外观。 V9.2版本中Theme的引入方法有了很大的变化,通过对Demo...
  • WPF命名空间

    2020-12-18 21:39:32
    WPF命名空间 如下图,WPF在默认情况下带有三个命名...那么WPF命名空间里面的样式、模板、动画等资源要如何使用呢?是与Html那样使用Css或者Style标签吗? 当然不是。既然是资源,就要通过资源引入命名空间里面的资源
  •  2.8.1 在运行时加载和解析XAML   2.8.2 编译XAML   2.8.3 XAML关键字   2.9 小结   2.9.1 抱怨1:XML太过冗长不便于输入   2.9.2 抱怨2:基于XML的系统性能差   第3章 WPF的重要新概念   3.1...
  • WPF之动态换肤

    2018-08-14 10:00:00
    原文:WPF之动态换肤如何实现换肤呢,对于复杂的换肤操作,如,更换按钮样式、窗口样式等,我们需要写多个资源字典来表示不同的皮肤,通过动态加载不同的资源字典来实现换肤的效果;对于简单的换肤操作,如更改背景...
  • WPF编程宝典 part1

    2015-07-20 23:33:59
    2.5 加载和编译XAML 38 2.5.1 只使用代码 38 2.5.2 使用代码和未经编译的XAML 40 2.5.3 使用代码和编译过的XAML 42 2.5.4 只使用XAML 44 2.6 小结 45 第3章 布局 47 3.1 理解WPF中的布局 47 3.1.1 WPF布局原则 47 ...
  • 基本方法是当用户点击切换主题按钮是加载新的资源字典,并使用新加载资源字典替代当前的资源字典这时要用到ResourceManager。 假设现有两个不同的资源字典文件Dictionary1.xaml和Dictiona...
  • 一款非常好的WPF编程宝典2010 源代码

    热门讨论 2014-04-14 09:57:41
    第1章 WPF概述 1 1.1 理解Windows图形 1 1.1.1 DirectX:新的图形引擎 1 1.1.2 硬件加速与WPF 2 1.2 WPF:高级API 4 1.2.1 分辨率无关性 5 1.2.2 WPF的演化 9 1.2.3 Windows窗体将继续保留 11 1.2.4 DirectX...
  • WPF实现动态换肤功能(一)

    千次阅读 2010-09-06 13:46:00
    如何实现换肤呢,对于复杂的换肤操作,如,更换按钮样式、窗口样式等,我们需要写多个资源字典来表示不同的皮肤,通过动态加载不同的资源字典来实现换肤的效果;对于简单的换肤操作,如更改背景颜色、设置窗体...
  • 11、对LineDataPoint样式进行了设计,现在可以选择线图的点样式(如空心圆、五角星、三角形,矩形等),同时这些不同的点样式可以体现在Legend上,从而实现颜色和图形的双重区分。 总而言之,微软的控件库做得很标准...
  •  2.5 加载和编译XAML  2.5.1 只使用代码  2.5.2 使用代码和未经编译的XAML  2.5.3 使用代码和编译过的XAML  2.5.4 只使用XAML  2.6 XAML2009  2.6.1 自动事件连接  2.6.2 引用  2.6.3 内置类型  2.6.4 ...
  • ArcGIS Pro的控件样式

    2018-10-18 21:52:02
    目录 1、简介  2、Pro自定义的控件风格 2.1 预览 2.2 视窗 2.3 按钮样式 2.4 单选框 2.5 表格 2.6 Expander 2.7 Gallery 2.8 HyperLink 2.9 TextBlock ...3.3 数据加载窗 ...WPF通过资源可以引...

空空如也

空空如也

1 2 3
收藏数 50
精华内容 20
关键字:

wpf样式资源加载