wpf日历控件制作过程分析(1) 定义header

希望通过分析能更好的理解wpf控件的开发

一.日历的header布局

包含两部分,两个按钮和一个Title

首先定义按钮的样式(随自己定),可以先定义几个状态为普通状态,鼠标经过状态,按下状态和禁用4个状态显示不同的样式.其中按钮上还有一个小三角.所以还要定义一个三角的Geometry

代码开始

1.画出Geometry(涉及知识点为Geometry的画法及迷你语法,如M Z等)

<PathGeometry x:Key="geometry" Figures="M0,0 4.5,4 9,0 5.5,0 4.5,1 3.5,0z"/>

2.定义4个不同状态下的笔刷(可自由发挥)

Code

<LinearGradientBrush x:Key="MonthCalendarButtonFillNormal" StartPoint="0,0" EndPoint="1,1">
     <LinearGradientBrush.GradientStops>
       <GradientStop Color="#FFE1EAFE" Offset="0"/>
       <GradientStop Color="#FFC3D3FD" Offset="0.3"/>
       <GradientStop Color="#FFC3D3FD" Offset="0.6"/>
       <GradientStop Color="#FFBBCDF9" Offset="1"/>
     </LinearGradientBrush.GradientStops>
   </LinearGradientBrush>
   <LinearGradientBrush x:Key="MonthCalendarButtonFillHover" StartPoint="0, 0" EndPoint="1, 1">
     <LinearGradientBrush.GradientStops>
       <GradientStop Color="#FFD6E7FF" Offset="0"/>
       <GradientStop Color="#FFD6E7FF" Offset="0.6"/>
       <GradientStop Color="#FFB9DAFB" Offset="1"/>
     </LinearGradientBrush.GradientStops>
   </LinearGradientBrush>
   <LinearGradientBrush x:Key="MonthCalendarButtonFillPressed" StartPoint="0, 0" EndPoint="1, 1">
     <LinearGradientBrush.GradientStops>
       <GradientStop Color="#FF93A8D9" Offset="0"/>
       <GradientStop Color="#FFA5BDFB" Offset="0.3"/>
       <GradientStop Color="#FFA5BDFB" Offset="0.7"/>
       <GradientStop Color="#FFD2DEEB" Offset="1.0"/>
     </LinearGradientBrush.GradientStops>
   </LinearGradientBrush>
   <LinearGradientBrush x:Key="MonthCalendarButtonFillDisabled" StartPoint="0, 0" EndPoint="1, 1">
     <LinearGradientBrush.GradientStops>
       <GradientStop Color="#FFF7F7F7" Offset="0"/>
       <GradientStop Color="#FFF0F0F0" Offset="0.3"/>
       <GradientStop Color="#FFECECEC" Offset="0.6"/>
       <GradientStop Color="#FFE3E3E3" Offset="1.0"/>
     </LinearGradientBrush.GradientStops>
   </LinearGradientBrush>

时间: 2024-12-21 11:00:13

wpf日历控件制作过程分析(1) 定义header的相关文章

wpf日历控件制作过程分析(3) 定义DayHeaders

<!--DayHeaders--> <Grid x:Name="DayHeaders" Grid.Column="1"> <Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnDefinition/> <ColumnDefinition/> <ColumnDefinition/> <ColumnDefinition/> &

wpf日历控件制作过程分析(2) 自定义样式属性

接上篇wpf日历控件制作过程分析(1) 定义header 在header中,我们看到了定义一个自定义样式TitleStyle 1.自定义样式 看后台代码定义 Code /**//// <summary> /// The DependencyProperty for the TitleStyle property. /// Flags: none /// Default Value: null /// </summary> public static readonly Depende

WPF中的日历控件

一直很奇怪, WPF中怎么没有日历控件, 这给开发带来了些不便. 这里找到了一个日历控件,是Microsoft开发的, 但其只相当与.net2.0中的普通日历控件,而没有Vista中日历控件那么酷. 本文配套源码

原生js制作日历控件实例分享_javascript技巧

本文实例为大家分享了js实现一个简单的日历控件,供大家参考,具体内容如下 效果图: 具体代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>date</title> <style type="text/css"> *{ margin:0; padding:0;} a{ text-decoration:none

iOS自定义日历控件的简单实现过程_IOS

因为程序要求要插入一个日历控件,该空间的要求是从当天开始及以后的六个月内的日历,上网查资料基本上都说只要获取两个条件(当月第一天周几和本月一共有多少天)就可以实现一个简单的日历,剩下的靠自己的简单逻辑就OK了,下面开始自己从开始到完成的整个过程 1.首先做NSDate类目,扩展一些方法让日期之间转换更加方便 #import <Foundation/Foundation.h> @interface NSDate (LYWCalendar) #pragma mark - 获取日 - (NSInte

可选择小时和分钟的js日历控件

js|控件|日历 需要找一个 可选择小时和分钟的js日历控件,google了一通没有,最后在一个姐姐的blog上面找到了个修改自梅花雨控件的半成品,错误不少,改了半天终于能用了,放上来希望对大家的工作有帮助.   <script language="javascript">...  /**//**//**//** *使用方法: * (1)只选择日期   <input type="text" name="date"   readO

为你的Blog打造个性日历控件

控件|日历 日历控件是dotnet自带的控件之一,功能强大,在很多项目开发中都有用到,对于blog系统来说更是必不可少.纵是好玉也仍需雕琢,为了使它更美观实用,我们还需要对它进行二次开发. 第一步是外观设置,这个根据你的需要,只需对它的相关属性做一些调整即可.下图是我调整后的界面 属性设置如下:<asp:calendar id="Calendar1" CellPadding="2" Width="160px" TitleStyle-Back

ASP.net下的前台日历控件源代码

asp.net|控件|日历|源代码 #region 声明//----------------------------------------------------------------------//// 作者: 李淼(Nick.Lee)//// ASP.net下的前台日历控件源代码(不刷新页面) // 时间:2005-3-15 // boyorgril@msn.com// QQ:16503096//注意:引用请标明出处,谢谢//-------------------------------

ASP.net下的前台日历控件源代码(不刷新页面)

asp.net|控件|日历|刷新|页面|源代码 #region 声明//----------------------------------------------------------------------//// 作者: 李淼(Nick.Lee)//// ASP.net下的前台日历控件源代码(不刷新页面) // 时间:2005-3-15 // boyorgril@msn.com// QQ:16503096//注意:引用请标明出处,谢谢//-------------------------