`
jiasongmao
  • 浏览: 670862 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

wpf样式模版

    博客分类:
  • WPF
WPF 
阅读更多
<Page
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Page.Resources>
 
    <Style TargetType="{x:Type Button}" x:Key="roundButton">
    <Style.Resources>
   
      <!-- colors -->
      <LinearGradientBrush x:Key="roundButtonBackground" StartPoint="0,0" EndPoint="0,1">
        <GradientStop Color="Red" />
        <GradientStop Color="Yellow" Offset="1" />
      </LinearGradientBrush>
     
      <LinearGradientBrush x:Key="disabledRoundButtonBackground" StartPoint="0,0" EndPoint="0,1">
        <GradientStop Color="#555" />
        <GradientStop Color="#CCC" Offset="1" />
      </LinearGradientBrush>
     
      <RadialGradientBrush x:Key="mouseOverRoundButtonBackground">
        <GradientStop Color="#FFF9F7A9" Offset="0" />
        <GradientStop Color="Yellow" Offset="0.2" />
        <GradientStop Color="Orange" Offset="0.7" />
       
        <GradientStop Color="Red" Offset="1" />
      </RadialGradientBrush>
     
      <LinearGradientBrush x:Key="glossShineBrush" StartPoint="0,0" EndPoint="0,1">
        <GradientStop Color="#DDFFFFFF" Offset="0" />
        <GradientStop Color="#33FFFFFF" Offset="1" />
      </LinearGradientBrush>
 
      <SolidColorBrush x:Key="roundButtonStroke" Color="Red" />
     
      <SolidColorBrush x:Key="disabledRoundButtonStroke" Color="#333" />
 
    <DropShadowEffect x:Key="focusEffect" ShadowDepth="0" Color="Orange" BlurRadius="4"  />
    <DropShadowEffect x:Key="pressedEffect" ShadowDepth="0" Color="Red" BlurRadius="6"  />
      
    </Style.Resources>
      <Setter Property="Foreground" Value="Black" />
      <Setter Property="Template">
        <Setter.Value>
          <ControlTemplate TargetType="Button">
            <Grid Width="{TemplateBinding Width}" Height="{TemplateBinding Height}" >
              <Grid.RowDefinitions>
                <RowDefinition Height="*" />
                <RowDefinition Height="7*" />
                <RowDefinition Height="7*" />
              </Grid.RowDefinitions>
              <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*" />
                <ColumnDefinition Width="5*" />
                <ColumnDefinition Width="*" />
              </Grid.ColumnDefinitions>
              <Ellipse x:Name="bgEllipse" Grid.ColumnSpan="3" Grid.RowSpan="3" Fill="{StaticResource roundButtonBackground}" Stroke="{StaticResource roundButtonStroke}" />
              <ContentPresenter Grid.RowSpan="3" Grid.ColumnSpan="3" HorizontalAlignment="Center" VerticalAlignment="Center" RecognizesAccessKey="True" />
              <Ellipse x:Name="shine" Grid.Row="1" Grid.Column="1" Fill="{StaticResource glossShineBrush}" />
            </Grid>
           
            <ControlTemplate.Triggers>
                <Trigger Property="IsKeyboardFocused" Value="true">
                    <Setter TargetName="bgEllipse" Property="Effect" Value="{StaticResource focusEffect}" />
                </Trigger>
                 <Trigger Property="IsPressed" Value="true">
                    <Setter TargetName="shine" Property="Opacity" Value="0.35" />
                    <Setter TargetName="bgEllipse" Property="Effect" Value="{StaticResource pressedEffect}" />
                </Trigger>
                <Trigger Property="IsDefaulted" Value="true">
                    <Setter TargetName="bgEllipse" Property="StrokeThickness" Value="1.5" />
                </Trigger>
                <Trigger Property="IsMouseOver" Value="true">
                    <Setter TargetName="bgEllipse" Property="Fill" Value="{StaticResource mouseOverRoundButtonBackground}" />
                </Trigger>
                <Trigger Property="IsEnabled" Value="false">
                    <Setter TargetName="bgEllipse" Property="Fill" Value="{StaticResource disabledRoundButtonBackground}" />
                    <Setter TargetName="bgEllipse" Property="Stroke" Value="{StaticResource disabledRoundButtonStroke}" />           
                </Trigger>
            </ControlTemplate.Triggers>
           
          </ControlTemplate>
        </Setter.Value>
      </Setter>
    </Style>
  </Page.Resources>
 
  <StackPanel Orientation="Horizontal">
    <!-- you would probably want to put the width, height and margin in to the style too -->
    <Button Style="{StaticResource roundButton}" Width="30" Height="30" Content="Foo" Margin="5">
    </Button>
    <Button Style="{StaticResource roundButton}" IsDefault="True" Width="30" Height="30" Content="Bar" Margin="5">
    </Button>
    <Button Style="{StaticResource roundButton}" IsEnabled="False" Width="30" Height="30" Content="Baz" Margin="5">
    </Button>
  </StackPanel>
</Page>
分享到:
评论

相关推荐

    WPF的样式与模板

    WPF 的样式与模板 WPF(Windows Presentation Foundation)中的样式和模板是对控件外观和行为的统一定义,通过样式和模板,可以实现控件的统一风格和行为。 在 WPF 中,样式(Style)是一种资源,它可以为控件定义...

    WPF样式大全,20多套不同风格的样式

    这个名为“WPF样式大全”的资源集合提供了超过20种不同设计风格的样式,旨在帮助开发者们提升应用程序的视觉吸引力和用户体验。下面将详细介绍这些关键元素以及它们在WPF中的应用。 1. **样式(Styles)**:在WPF中,...

    WPF样式 WpfToolkit-master

    **WPF样式与WpfToolkit库详解** WPF(Windows Presentation Foundation)是.NET框架的一部分,用于构建具有丰富用户界面的应用程序。WPF提供了一种强大的样式和模板机制,允许开发者通过定义样式来控制UI元素的外观...

    WPF 样式集

    在实际开发中,可以通过导入WPF样式集来快速应用预设的样式和模板。这通常涉及到在项目的资源字典中引用样式集文件,然后通过`Style`和`ControlTemplate`属性将样式和模板应用到相应的控件上。同时,样式集中的资源...

    WPF漂亮样式

    WPF是.NET Framework的一部分,它提供了丰富的功能来创建桌面应用程序,其中包括强大的样式和模板机制,使得开发者能够轻松地设计出吸引人的、用户友好的界面。 首先,我们要理解WPF中的样式(Style)。样式是一种...

    WPF样式静态资源绑定

    在Windows Presentation Foundation (WPF) ...总结,WPF样式静态资源绑定是构建高效、美观且易于维护的用户界面的关键技术。通过合理利用静态资源,开发者可以创建出一致的视觉体验,同时减少重复代码,提升开发效率。

    WPF样式 WpfToolkit-master.zip

    下面,我们将深入探讨WPF样式及其与WpfToolkit的关系。 WPF(Windows Presentation Foundation)是.NET Framework的一部分,用于构建具有丰富图形、媒体和数据绑定能力的桌面应用程序。样式在WPF中扮演着核心角色,...

    WPF样式与模板

    ### WPF样式与模板 #### 一、WPF样式 WPF(Windows Presentation Foundation)是一种用于构建Windows桌面应用程序的技术框架,它提供了丰富的图形渲染引擎和强大的编程模型。在WPF中,样式(Styles)是非常重要的...

    WPF 样式查看器,查看控件样式和模板

    WPF 样式查看器,查看控件样式和模板 WPF 样式查看器,查看控件样式和模板

    WPF ListView 漂亮样式

    WPF允许我们通过XAML定义丰富的样式和模板,包括ControlTemplate、DataTemplate等。例如,可以为ListView项定义一个模板,使其包含图片、文本和按钮: ```xml 详情" /&gt; ``` 4. **Header样式** ...

    WPF样式图片按钮

    在Windows Presentation Foundation (WPF) 中,样式图片按钮是一种结合了图像和按钮功能的控件,它可以提供更直观、更具视觉吸引力的用户交互体验。在本文中,我们将深入探讨如何在WPF中创建和使用样式图片按钮,...

    WPF 数据集合绑定事例[模板、资源应用]

    资源在WPF中扮演着关键角色,它们提供了一种方式来重用和共享UI元素的样式和模板。通过在应用程序的资源字典中定义资源,你可以实现代码的复用,简化UI设计,并保持一致的视觉样式。资源可以是颜色、字体、模板、...

    wpf radiobutton模版设计成button样式

    本教程将深入探讨如何将WPF的RadioButton设计成Button的样式。 首先,我们需要了解RadioButton的基本结构和默认模板。RadioButton的默认模板由VisualStateManager、Border、ContentPresenter和Toggle纽扣部分组成。...

    WPF样式.rar

    在这个名为"WPF样式.rar"的压缩包中,我们聚焦于两个主要知识点:WPF中的TreeView虚线连接样式以及TreeView的数据过滤功能。 1. **WPF TreeView虚线连接样式** 在WPF中,TreeView控件通常用来展示层次结构的数据,...

    WPF 窗体样式重写 界面优美

    首先,我们要了解WPF中的样式和模板。样式(Style)定义了UI元素的外观属性,如背景色、字体、边框等。模板(Template)则更进一步,可以完全控制元素的结构和布局,包括子元素的添加和它们的相互关系。在WPF中,...

    wpf菜单MenuItem样式经典

    在本文中,我们将深入探讨WPF(Windows Presentation Foundation)中的`MenuItem`控件,以及如何创建经典的`MenuItem`样式。`MenuItem`是WPF UI设计中的一个重要元素,它用于构建应用程序的菜单栏,提供用户交互的...

    WPF TreeView控件样式

    本篇文章将深入探讨如何自定义WPF TreeView控件的样式,包括节点的大小和形状,以实现更丰富的视觉效果和交互体验。 1. **自定义 TreeView 控件的基本样式** - 使用`&lt;Style TargetType="TreeView"&gt;`标签来定义整个...

    WPF 实现RadioButton样式两种方式,vs2010

    在WPF中,我们可以创建资源字典来定义样式,这样可以实现样式重用,并使代码更加整洁。以下步骤解释了如何创建和应用资源样式: 1. 打开你的WPF项目,在`Resources`文件夹下创建一个新的`ResourceDictionary`文件,...

    漂亮的WPFUI模板

    **WPF UI 模板详解** Windows Presentation Foundation (WPF) 是微软开发的一种用户界面框架,用于构建桌面应用程序。它提供了丰富的图形系统、强大的数据绑定功能、以及对2D和3D图形、图像、文本和媒体的支持。...

Global site tag (gtag.js) - Google Analytics