zoukankan      html  css  js  c++  java
  • WPF XAML 资源样式模板属性存放位置

    WPF的XAML 资源申明 类似HTML。

    整体来说分3种

    1.行类资源样式属性

    1.1 行内属性

    <Button Content="按钮" Foreground="White" FontSize="30"></Button>
    

    1.2 行内样式 模板(没多大意义)

    <Button Content="按钮">
      <Button.Style>
             <Style TargetType="Button">
                        <Setter Property="Foreground" Value="White"></Setter>
                        <Setter Property="FontSize" Value="30"></Setter>
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="Button">
                                    <Grid></Grid>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
              </Style>
      </Button.Style>
      <Button.Template>
               <ControlTemplate TargetType="Button">
                        <Grid></Grid>
               </ControlTemplate>
      </Button.Template>
    </Button>

    2.头部资源样式属性

    2.1 头部样式模板 (申明)

    <Window.Resources>
            <Style x:Key="xxx" TargetType="Button">
                <Setter Property="Foreground" Value="White"></Setter>
                <Setter Property="FontSize" Value="30"></Setter>
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="Button">
                            <Grid></Grid>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
            <ControlTemplate x:Key="xx" TargetType="Button">
                <Grid></Grid>
            </ControlTemplate>
    </Window.Resources>
    

    2.2 头部样式模板 (引用)

    <Window.Resources>
            <ResourceDictionary>
                <ResourceDictionary.MergedDictionaries>
                    <ResourceDictionary Source="Dictionary.xaml"/>
                </ResourceDictionary.MergedDictionaries>
            </ResourceDictionary>
    </Window.Resources>
    

      

    3.全局资源样式属性

    App.xaml

        <Application.Resources>
            <ResourceDictionary>
    <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="Dictionary.xaml"/> </ResourceDictionary.MergedDictionaries>
    <Style x:Key="xxx" TargetType="Button"> <Setter Property="Foreground" Value="White"></Setter> <Setter Property="FontSize" Value="30"></Setter> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="Button"> <Grid></Grid> </ControlTemplate> </Setter.Value> </Setter> </Style> <ControlTemplate x:Key="xx" TargetType="Button"> <Grid></Grid> </ControlTemplate> </ResourceDictionary> </Application.Resources>

    !!!!!!!!!!!!!!配合资源字典的使用!!!!!!!!!  

    说明:

    1.行类属性尽量少用,只有特殊控件 需要用到行内属性,

       正确的做法是封装统一风格的所有控件。
      (例如按钮,统一高宽,字体,字体大小,然后申明到独立的资源字典中,
        在App.xaml中引用)

    2.头部资源引用情况用于 不同 Window 适应不同主题或者风格的情况。

       比如为某一个窗口申明一个当前窗口单独使用的样式。

      (例如播放器的旋转控件,只有一个页面用到,只需要在Window级引用对应资源字典)

       不放在App.xaml原因是为了降低内存消耗。

    3.App.xaml 里面的资源引用适用于全局资源。理论上每一个被申明的Window
       都会创建一个对应资源字典的实例。除非是每个Window都会用到的模块,
        不然建议放到对应Window级
      

    作者:Dream.Machine (944095635)
    网站:http://www.dmskin.com
    博客:http://www.cnblogs.com/DMSkin
    开源:https://github.com/944095635
    关于作者:专注于 WPF开发、C# 开发。
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明.
    在文章页面位置给出原文连接,如有问题,可以通过944095635@qq.com 联系我,非常感谢。
  • 相关阅读:
    Sencha Touch id 和 itemId
    解决VS报表.rdl 显示乱码“小方块”问题
    C# 调试程序弹出 没有可用于当前位置的源代码 对话框
    解决DropDownList 有一个无效 SelectedValue,因为它不在项目列表中。这是怎么回事?
    CS0016: 未能写入输出文件“c:windowsMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Filesdata34aae0607daa87dApp_Web_addadvice.aspx.cdcab7d2.ekhlcbjd.dll”--“目录名无效。 ”
    利用微软类库 Visual Studio International Pack 汉字转拼音
    【C#】线程之Parallel
    【C#】线程之Task
    【C#】线程协作式取消
    【C#】属性(Attribute)
  • 原文地址:https://www.cnblogs.com/DMSkin/p/8453062.html
Copyright © 2011-2022 走看看