20120911 关于WPF控件的进一步学习

元素风格,自定义参数:

    控件的Style属性可以赋予包含Setter相关联的Style属性。Setter元素定义Property和Value属性。可以定义一个Style样式名TargetType,并以此进行样式访问,如Button.Background:但是直接定义在Button下面仅仅方便该button使用,如果定义在窗口资源下,系统资源下已达到资源共享。

<Button>
    <Button.Style>
        <Style TargetType="Button">
            <Setter Property="Background" Value="red" />
            <Setter Property="FontSize" Value="13" />
        </Style >
    </Button.Style>
</Button>

资源共享中还需设置一个Key,可以达到把样式赋予指定元素、指定某类型元素或者直接使用一个键,当指定为某一类型元素的时候要设置Style的TargetType的属性,指定X:Type标记扩展,如{x:Type Button}赋予给按钮元素。要定义需要引用的样式,还需定义x:Key:

<Window.Resources>
        <!--风格属性指定为元素类型,该类型的默认风格为以下定义的风格-->
        <Style TargetType="{x:Type Button}">
            <Setter Property="Background" Value="LemonChiffon"/>
            <Setter Property="FontSize" Value="3"/>
        </Style>
        <!--风格属性指定为键-->
        <Style x:Key="ButtonStyle">
            <Setter Property="Button.Background" Value="red"/>
            <Setter Property="Button.Foreground" Value="White"/>
            <Setter Property="Button.FontSize" Value="13"/>
        </Style>
        <!--定义渐变色风格-->
        <Style x:Key="FancyButtonStyle">
            <Setter Property="Button.Foreground" Value="White"/>
            <Setter Property="Button.FontSize" Value="22"/>
            <Setter Property="Button.Background" >
                <Setter.Value>
                    <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                        <GradientStop Offset="0" Color="Red"/>
                        <GradientStop Offset="0.3" Color="White" />
                        <GradientStop Offset="1" Color="Black" />
                    </LinearGradientBrush>
                </Setter.Value>
            </Setter>
        </Style>
        <!--定义继承于其他样式的样式-->
        <Style x:Key="AnotherFancyButtonStyle" BasedOn="{StaticResource FancyButtonStyle}" 
               TargetType="Button">
            <Setter Property="Foreground">
                <Setter.Value>
                    <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                        <GradientStop Offset="0" Color="Blue"/>
                        <GradientStop Offset="0.4" Color="Yellow" />
                        <GradientStop Offset="0.9" Color="PapayaWhip" />
                    </LinearGradientBrush>
                </Setter.Value>
            </Setter>
        </Style>
    </Window.Resources>

定义四个Button采用不同的风格:

<StackPanel>
        <Button Height="30" >defalut</Button>
        <Button Height="30"  Style="{StaticResource ButtonStyle}">ButtonStyle</Button>
        <Button Height="30"  Style="{StaticResource FancyButtonStyle}">FancyButtonStyle</Button>
        <Button Height="30"  Style="{StaticResource AnotherFancyButtonStyle}">AnotherFancyButtonStyle</Button>
</StackPanel>

image

资源:

   资源的定义可以在不同的元素,但其作用范围在该元素作用范围。例如在上面的基础再定义一个StackPanel,并在该StackPanel中设置按钮的默认风格,并定义个渐变的画笔:

<StackPanel>
        <StackPanel.Resources>
            <LinearGradientBrush x:Key="MyBrush" StartPoint="0,0" EndPoint="1,0">
                <GradientStop Offset="0" Color="Red"/>
                <GradientStop Offset="0.3" Color="White" />
                <GradientStop Offset="1" Color="Black" />
            </LinearGradientBrush>
            <Style TargetType="{x:Type Button}">
                <Setter Property="FontSize" Value="17"/>
           </Style>
       </StackPanel.Resources>
       <Button Height="30"  Background="{StaticResource MyBrush}">MyBrush</Button>
</StackPanel>

image

系统资源:

    许多系统范围内的资源也可以应用于所有应用程序,这些资源用SystemColor、SystemFront和SystemParameter中定义:

       1)SystemColor可以获取边框、控件和窗口的颜色,如:ActiveBorderColor、ControlBrush、DesktopColor、WindowColor和WindowBrush等

       2)SystemFront返回菜单、状态栏、消息框等字体设置,例如CaptionFront、DialogFront、MenuFront、MessageBoxFront和StatusFront等

       3)SystemParameter设置菜单按钮、光标、图标、边框、标题、时间信息、键盘设置的大小,例如:BorderWidth、CaptionWidth、MenuButtonWidth、MenuPopupAnimation、MenuShowDelay、SmallIconHeight。

 

    从代码中访问资源:例如在Button中的鼠标单击处理事件中有:

private void MyButton_Click(object sender, RoutedEventArgs e)
{
    Control ctr = sender as Control;
    ctr.Background = ctr.FindResource("MyBrush") as Brush;
}

image

image

动态资源:

<Button Height="30" Name="MyButton2" Click="MyButton_Click2"
                    Background="{DynamicResource MyBrush}" Content="ChangeColorByCode">
            </Button>

单击处理函数部分:

private void MyButton_Click2(object sender, RoutedEventArgs e)
        {
           //避免多次单击鼠标引起的崩溃;
            if (MyContainer.Resources.Contains("MyGraBrush"))
            {
                return;
            }
            var brush = new LinearGradientBrush
                {
                    StartPoint=new Point(0,0),
                    EndPoint = new Point(1,0)
                };
            brush.GradientStops = new GradientStopCollection()
            {
                new GradientStop(Colors.Aqua, 0.0),
                new GradientStop(Colors.PapayaWhip, 0.5),
                new GradientStop(Colors.Peru, 0.9)
            };
            MyContainer.Resources.Add("MyGraBrush", brush);

            Control ctr = sender as Control;
            ctr.Background = ctr.FindResource("MyGraBrush") as Brush;
       //SolidColorBrush brush = new SolidColorBrush(Colors.Green);
       //this.Resources["MyGraBrush"] = brush;
        }

资源字典:

适用于相同的资源在不同的应用程序中使用。使用资源字典,需要建立一个库,并把资源文件添加进去,其构建动作必须设置为resource;

例如:添加字典文件-》引入字典文件-》使用:

新建一个字典文件,并将上例中的资源文件放入;在<Window.Resources> 标签中添加

<Window.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <!---->
                <!--由于没有包设置为库文件,直接只用字典定义文件;
                 <ResourceDictionary Source ="/ResourLib;compoment/Dictionary.xaml" />
                -->
                <ResourceDictionary Source ="Dictionary.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Window.Resources>

上述操作后,效果同上面的使用;

转载于:https://www.cnblogs.com/Caius/archive/2012/09/11/2680348.html

数据治理是确保数据准确性、可靠性、安全性、可用性和完整性的体系和框架。它定义了组织内部如何使用、存储、保护和共享数据的规则和流程。数据治理的重要性随着数字化转型的加速而日益凸显,它能够提高决策效率、增强业务竞争力、降低风险,并促进业务创新。有效的数据治理体系可以确保数据在采集、存储、处理、共享和保护等环节的合规性和有效性。 数据质量管理是数据治理中的关键环节,它涉及数据质量评估、数据清洗、标准化和监控。高质量的数据能够提升业务决策的准确性,优化业务流程,并挖掘潜在的商业价值。随着大数据和人工智能技术的发展,数据质量管理在确保数据准确性和可靠性方面的作用愈发重要。企业需要建立完善的数据质量管理和校验机制,并通过数据清洗和标准化提高数据质量。 数据安全与隐私保护是数据治理中的另一个重要领域。随着数据量的快速增长和互联网技术的迅速发展,数据安全与隐私保护面临前所未有的挑战。企业需要加强数据安全与隐私保护的法律法规和技术手段,采用数据加密、脱敏和备份恢复等技术手段,以及加强培训和教育,提高安全意识和技能水平。 数据流程管理与监控是确保数据质量、提高数据利用率、保护数据安全的重要环节。有效的数据流程管理可以确保数据流程的合规性和高效性,而实时监控则有助于及时发现并解决潜在问题。企业需要设计合理的数据流程架构,制定详细的数据管理流程规范,并运用数据审计和可视化技术手段进行监控。 数据资产管理是将数据视为组织的重要资产,通过有效的管理和利用,为组织带来经济价值。数据资产管理涵盖数据的整个生命周期,包括数据的创建、存储、处理、共享、使用和保护。它面临的挑战包括数据量的快速增长、数据类型的多样化和数据更新的迅速性。组织需要建立完善的数据管理体系,提高数据处理和分析能力,以应对这些挑战。同时,数据资产的分类与评估、共享与使用规范也是数据资产管理的重要组成部分,需要制定合理的标准和规范,确保数据共享的安全性和隐私保护,以及建立合理的利益分配和权益保障机制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值