当前位置:网站首页 / WPF / 正文

[2016-7-19更新]AYUI 4.2是免费的 -面向商业界面级别的免费方案和控件( 官方群号 466717219)

时间:2016年07月11日 | 作者 : aaronyang | 分类 : WPF | 浏览: 21598次 | 评论 9



blob.pngImage 1.png

(AYUI源码客户群 337468846,通用AYUI群 466717219) 声明:本UI 从不使用 WPFToolkit和其他第三方收费dll,群内有最新版本的体验资源下载

体验中心:立即前往

购买地址: 立即购买

作品展示: 立即观摩

AYUI打包超前沿工具:快速过目

AYUI日期需求控件帖:查看

AYUI需要购买后,我会提供唯一的产品ID,然后你可以加群,获得最新版本(源码)

待完成

AyCheckboxList,自动升级组件

AyComboTree

AyComboGrid

AyRemoteImage

多行文本框

以下控件已经完成

【4.2】

AyTreeView 的id和pid更改为string类型,以前是int型,创建一个树形结构

升级FontAwesome字体库到4.6.3


【4.2】

新增AyWindowManager类,方便创建单例子窗体。

使用方法如下:

 AyWindowManager.GetWindow<Window1>().ShowSingleWindow();

当然提供了2个显示子窗体的方法

blob.png


[4.2]2016-7-6 15:49:09

增加属性IsLoadedDefaultBackground    bool

默认是否加载主题背景

此条属性,必须加载客户端窗体的构造函数

 InitializeComponent();方法的上方



[4.2]2016-7-6 

AyWindow增加属性IsPinBackground 是否固定背景,不随主题变,默认false

新增一个方法 XX,客户端已经可以手动设置背景,方法名暂时不透露


[4.2] 2016-7-5 10:19:53

AyWindow和AyGaosiBackgroundLayer背景增加画刷平铺模式BackgroundStretch







【3.7beta】

aywindow新增

WindowRightButtonGroupVisibility属性,控制右侧顶部的显示和隐藏


【3.7beta】

修复皮肤窗口除jpg格式以外的其他缩略图的问题



【3.7beta】2016-6-6 11:43:31

增加异步填充数据demo

修复AySlider 跟随的tooltip的位置问题。drag脱离thumb最大位置时候,不会超过slider的最大长度或者高度


【3.7beta】2016-6-6 11:41:11

Ayslider支持,拖放是否显示提示框,支持,默认是否显示拖放thumb,单击显示,离开slider范围消失。单击任意位置可以立即拖动

blob.pngblob.png


【3.7beta】2016-5-22 22:41:19

新增AyTextButton(继承Button的),建议替换AyHyberTextBlock(继承TextBlock)的用法

用法Demo

   <control:AyTextButton Foreground="#cbcbcb" ForegroundMouseEnter="#FFFFFF" ForegroundPressed="#FFFFFF" ForegroundDisabled="#cbcbcb" 
                                                  Text="清空" FontSize="12" Margin="0,21,25,0" BorderThickness="0" Background="Transparent" Height="20" 
                                                  VerticalAlignment="Top" HorizontalAlignment="Right"></control:AyTextButton>


【3.7beta】2016-5-22 17:13:12

重写窗体的resize,设置minwidth和minheight,调整窗体,注意aywindow必须要设置width,height,minwidth和minheight,不要设置maxwidth,和maxheight

已经解决,窗体调整大小,不会再向以前那种缩放窗体了,拉到小,自动弹回了。

自己原创的,写了5个小时了。

3.gif

改写,无阴影模式下,窗体调整大小的bug,已经换成最新的调整大小方法,解决了。

5.gif

34.gif


【3.7beta】2016-5-22 00:28:49

修复最大化窗体后,然后normal窗口没有触发客户端自定义的MaxWindowMethodOverride委托

  base.MaxWindowMethodOverride += () =>
            {
                base.DoMaxOrReStoreWindow();
          
                if (this.WindowState == WindowState.Normal)
                {
                    tiaozhengwindow.Visibility = Visibility.Visible;
                }
                else
                {
                    tiaozhengwindow.Visibility = Visibility.Collapsed;
                }

            };

关于窗体border的说明,窗体border,是背景图的border,我的背景图是rectangle填充的,边框是rectangle的stroke,而borderthickness,只管top,因为rectangle没有borderthickness,只有strokeness,只能全一样。

关于PopupEx控件,说明:只是为了解决自带的popup老是置顶的问题,popupex设置topmost=false,这样就不会置顶了。如果你想置顶你用popup就行了。

Helpers文件下新增PopopHelper,解决问题:staysopen=true状态下,popup不随着指定控件移动

使用办法:<Popup PopopHelper.PopupPlacementTarget="{Binding ElementName=绑定的控件}" />

新增AyDragDrop控件和使用demo:详细请查看

新增AyListBoxSelector的listbox选择控件::详细请查看

每日一课,自定义itemcontrols支持的子item的类型

    public class Toolbox : ItemsControl
    {
        // Defines the ItemHeight and ItemWidth properties of
        // the WrapPanel used for this Toolbox
        public Size ItemSize
        {
            get { return itemSize; }
            set { itemSize = value; }
        }
        private Size itemSize = new Size(50, 50);

        // Creates or identifies the element that is used to display the given item.        
        protected override DependencyObject GetContainerForItemOverride()
        {
            return new ToolboxItem();
        }

        // Determines if the specified item is (or is eligible to be) its own container.        
        protected override bool IsItemItsOwnContainerOverride(object item)
        {
            return (item is ToolboxItem);
        }

    }



【3.7beta】2016-5-10 01:54:35

修复皮肤窗口,换完纯色背景后,切换图片选择,直接选择自己的图片,背景图会丢失下。已经修复




【3.6.9】2016-05-06 15:39:21

修复日历关闭,打开有时候崩溃问题,修复含有今天按钮的时候,时分秒显示不全的问题

修复右下角托盘图标左键单击显示窗体,或者激活主窗体

修复showcurrenttime控件显示的时间问题



【3.6.8】2016-5-6 13:04:31

增加TransitionPresenter的DEMO,增加动画窗体的demo入口,增加圆角aywindow的demo入口,增加QQwindow的登陆demo,点击logo右侧的登陆(在左上角),增加AyKeyboardPwd键盘控件,移动框架中的Contents文件夹到客户端去,框架中不再拥有Contents文件夹。

新增AyTextBlock控件,本身是个只读的textbox控件。用于控制超出显示文本,自动显示...  省略符号,鼠标移上去提示完整文字


2016-04-19 12:59:47

获得当前窗体的背景图片

Background="{Binding BgData.ImBrush,RelativeSource={RelativeSource AncestorType={x:Type control:AyWindow},Mode=FindAncestor} }"


2016-4-14 02:02:53

恢复ayui中的控件tab键时候的虚线,就是获得焦点时候的虚线样式



2016-4-14 01:53:58

ayCombobox增加IsFocusOpened依赖属性,bool类型,用来控制,下拉框获得焦点后,是否显示下拉框,默认显示


2016-4-14 01:05:20

Aycombobox增加 AfterSelect依赖属性,用来控制,选择完下拉,不全选文本框的文本

3.gif





2016-4-12 21:41:01【截止2016-4-14 01:05:16已经发布    版本3.6.2】

AyCombobox更新:

  增加MaxLength控制最多输入多少文本,编辑状态时候,文本框模板换成AyTextBox,增加依赖属性MaskTextForeground和MaskText支持水印文本和水印字体设置

    AyUIEntity类增加IsMouseOver属性,AyUIEntity类定义了基本控件的行为普通属性,继承AyPropertyChanged,通知类,如何绑定ui这个AyUIEntity的子类,默认双向绑定ui层的属性

增加AyDuijiaoRotateTransition动画,对角线翻转打开窗体和隐藏窗体

增加ScanMianSingleTransition动画,单项动画,支持上下左右扫描,打开或者隐藏窗体,up就是从下往上关闭窗体,down是从上往下打开窗体,left是从左往右扫描出现界面,right从右往左关闭界面

AyPropertyChanged通知类,建议使用 this.OnPropertyChanged(() => this.IsMouseOver); 方式,防止文本的模式,重构出错。

blob.png


2016-4-7 07:48:36

重大调整:

blob.png

代码已经换成,如果想完整关闭程序,可以重写 ayui3.6.2新增的5个委托方法

blob.png

blob.png

比如方便关闭之前操作些什么,aywindow自带的5个可以操作的方法

 ShowWindowMenu 显示窗体菜单

 DoMaxOrReStoreWindow     最大化和还原默认状态的方法

 OpenSkinWindowShow 打开皮肤设置窗口

 DoMinWindow 最小化窗口

 DoCloseWindow 关闭或者隐藏窗口

使用demo其中一个案例如下:

blob.png



2016-4-6 00:05:51

AyWindow新增CloseButtonCornerRadius属性,类型是CornerRadius,用于控制关闭按钮的边缘的圆角,方便使用自带的关闭按钮时候,圆角的处理

WindowEntranceBackgroundMode属性,增加值2,代表 窗体没有阴影,1代表啥都没有,0是默认,背景+阴影

blob.png



2016-3-26 22:05:39

AyWindow新增    CloseIsHideWindow依赖属性,默认false,表示关闭就是退出程序,如果是true,表示是隐藏窗体到通知托盘

新增demo通知栏demo,菜单方式

3.gif

QQ管家demo中的自定义控件方式显示,不要菜单




2016-3-25 04:10:53

增加系列通知栏控件的使用和demo

最新体验效果请查看 QQ管家4.0



2016-03-16 22:12:19

aywindow增加 IsCoverTaskBar 表示最大化是否遮盖 任务栏,默认false

新增窗体上,窗体菜单,IsCoverTaskBar的demo,最大化遮盖任务栏

新增demo,BlankWindow窗体,演示出场和入场动画的使用

AyWindow新增IsCoverTaskBar属性,方便最大化是否遮盖任务栏,修复遮盖任务栏,边缘超出屏幕问题

AyWindow新增WindowEntranceBackgroundMode属性,方便隐藏窗体默认内容,方便出场和入场的动画

ThemeManager新增ThemeChanged事件

新增AyScrollViewer,方便定位滚动条内的位置,拓展相对位置方法

微小问题修复





2016-2-6 10:06:21

修复:AyDataPager的容量列表宽度设置最小宽度为48,具体宽度不设置,防止设置三位数以上的数字不显示完整

修复:框架问题,导致的多显示器读取的系统窗口打开的记录文件地址不对

修复:修复日历微小问题



2015-12-14 11:09:09

修复投影到其他显示器,dat文件路径错误

自定义aywindow右上角按钮,五个方法调用OpenSkinWindowShow    DoCloseWindow       DoMinWindow        DoMaxOrReStoreWindow     ShowWindowMenu



2015年12月10日18:00:15

升级fontawesome4.4到4.5,修改枚举类

blob.png


blob.png


2015年12月10日17:08:51

修改菜单为xml模式,这样添加菜单不用改代码了

blob.png

blob.png

增加ShowCurrentTime Demo

blob.png

2015年12月10日16:05:31

新增AyThread类,和AyTime类,九宫格demo

QQ图片20151210160711.png

blob.png

QQ图片20151210160730.png




2015-12-09 17:41:04

新增 AyHyberTextBlock





2015年12月9日14:35:19

AyAnimationButton新增MouseEnterRepeatSection属性,支持指定片段循环播放

4.gif



2015年12月8日11:09:04 版本 3.5.6.2

wpf的问题,当一个主窗口拥有超过一个子窗口的时候,最后一个子窗口关闭时候,主窗口会隐藏到下面一层,其实是失去了焦点。-已经修复

优化了皮肤设置窗口,高斯模糊调整时候,关闭窗口的判断。

新增NineGridBorder 九宫格控件,将图片切割九块,平铺中间一块。





2015-12-3 16:47:18

修复 皮肤窗口置顶问题,让皮肤窗口在 主窗口之上,并且同时显示和隐藏。


2015-12-3 16:32:43

修复一些由于项目目录变了,导致某些demo中,图片资源显示不出来的问题

新增PopupEx控件,修复日期控件,验证模式下,popup换成popupex,popup置顶问题修复,popup可以跟随窗体移动并且不置顶

修复皮肤窗口下,高斯模糊,默认滑动条的值没有赋值对。

AyAnimationButton新增 InitControlSection属性,用于显示时候默认播放帧,是在IsAutoPlay=false时候使用的

blob.png


2015年12月1日16:52:25

目录结构更简洁了

blob.png

开发结构,请使用ayui的朋友,这是ay的项目结构开发

blob.png




2015年12月1日16:13:35 框架目录改动

将bg文件夹和 config文件夹迁移到 Contents下,方便客户端框架的方式开发

Image 6.png

更改 基础色,换成win10自带的基础色

QQ图片20151201161242.png

框架客户端使用,基本定型格式为

Image 7.png

客户端如果有自己的图片,可以放到Contents下的bg按照 框架的目录结构进行添加

Views是放其他的page



3312.png

可以随意设置圆角,拥有win10的彩色边框,全新的 模糊算法,非wpf的,让圆角,让矩形模糊,边缘都不会产生白色透明或者超出圆角

窗体去掉了自带的模糊,只限aywindow,aypopupwindow暂时没大改

皮肤窗口,支持图片格式更多了,bmp,png,jpg都支持,颜色分析配色都有,不再只有jpg了

弹出框已改,透明主题色的上部分,下面自己配的

blob.png




2015年11月23日15:36:17

blob.png




2015-11-20 14:40:47

增加AyImage,主要用于完整显示图片,不模糊,但是只暴露1个source属性。

AyIconAll增加IsBitmapImage依赖属性,如果设置true,那么采用像素对其的image方式显示图片,不会产生模糊,如果是false,则采用Image

增加 LogDebugHelper类,只有LogDebugHelper.WriteLogFile(日志) 就OK了。



2015年11月20日13:26:43

xp下演示,已经去掉视频背景功能,但是保留了aywindow,视频背景的功能,小视频背景还是可以接受的

blob.png

blob.png




2015-11-19 18:06:30

修复农历的 计算问题,增加 中国节日,节气,农历节日

blob.png


2015年11月19日14:36:29  此版本3.4.9.5 已经发布

修复MVVM下 AyDatePickerBox的绑定问题

修复一些控件偶尔模糊的问题

修改大众版本的默认生成Any CPU

解决xp下 显示的等级,让xp可以使用



2015-10-16 15:52:09 

支持错误屏蔽,alt+F4屏蔽 ,拖动跟随,大小跟随绑定控件变化等


2015-10-16 14:43:36

速度决定体验

54.gif


2015-10-15 15:55:44

年月日动态限制,年月日时分秒级别的限制,随你怎么选,水印,样式你来控制,验证模块等大量功能上线

342.gif


2015-10-10 17:17:07

3.gif


2015-10-10 11:35:07

4.gif

2015-10-08 15:03:32

新AyTooltip,支持4个方向 三角摆放,支持内容自定义,内容自适应宽高

Image 12.png


2015-9-29 16:22:14


2015-9-11 17:28:42

增加:AyRangeSlider

增加:自带浏览器解决跟AllowTransparent冲突问题

增加:分页控件

增加:AyDataGrid分页示例,和效果

屏蔽右键,可拖动,跟随主窗体拖动,是winform的 webbrowser,你只要在你的网页上使用

<meta http-equiv="X-UA-Compatible" content="IE=Edge"> 

就可以表示webbrowser已操作系统最高的ie版本运行,能解决基本所有网页嵌入cs了

 如果仅仅展示无交互的网页,可以考虑使用cefsharp 




2015-8-17 17:47:39

图片显示控件,解决4种情形的图片使用

1.一张图片有4个图片,横着摆或者竖着摆


2.内容透明摆放

3自定义指定4张图片

动态效果演示

GIF2.gif

demo部分代码

  <control:AyImageButton x:Name="in1" Content="" Height="14" Width="14" HorizontalAlignment="Center"  VerticalAlignment="Center" Icon="/Images/icon_delete_14.png"/>
            <control:AyImageButton x:Name="in2" Content="" Height="22" Width="30" HorizontalAlignment="Left" RenderMode="VerticalFour" VerticalAlignment="Top" Icon="/Images/verTest.png" Margin="10,0,0,0"/>
          
            <control:AyImageButton x:Name="in3_1"  Height="96" Width="76" HorizontalAlignment="Right"
                                   RenderMode="ContentOpacity" VerticalAlignment="Top" Icon="/Images/btnBg.png" Margin="10,0,0,0" >
                <StackPanel Background="#00FFFFFF">
                    <Image Source="/Images/QQPCLeakScan_QO.png" Stretch="Uniform"/>
                    <TextBlock FontSize="14" Foreground="White" Text="修复漏洞" HorizontalAlignment="Center"></TextBlock>
                </StackPanel>
            </control:AyImageButton>
            <control:AyImageButton x:Name="in4"  Height="76" Width="76" HorizontalAlignment="Left"
                                   RenderMode="ContentOpacity" VerticalAlignment="Top" Icon="/Images/btnBg.png" Margin="10,0,0,0" >
                <Image Source="/Images/QQPCLeakScan_QO.png" Stretch="Uniform"/>
            </control:AyImageButton>

            <control:AyImageButton x:Name="in5"  Height="40" Width="40" RenderMode="Manner" VerticalAlignment="Top" Icon="/Images/1.png" HoverIcon="/Images/2.png" PressedIcon="/Images/3.png" DisabledIcon="/Images/3.png" Margin="10,0,0,0">
            </control:AyImageButton>


内容滑块,使用起来更简单,可以控制是否自动滑动,以及上一个下一个的样式

具体体验,请看Ayui.wizard效果:

效果视频演示(可以在线播放): http://pan.baidu.com/s/1eQ2fw7S

AYUI Wizard2.0安装向导 模拟体验:http://pan.baidu.com/s/1eQtXTiM


更新3: AyUcFileSelect控件,支持文件夹选择,文件选择,多文件选择,返回文件夹驱动大小,文件大小,两种方式的多文件选择后的信息展示

更新4: AyMessageBox支持 内容自适应高度的显示。


2015-8-3 09:45:10

AY花了2天时间研究出来的, 不变形,无图片,纯WPF做出来的,适应主题哦

GIF.gif



2015-7-25 16:59:49

框架 海康威视已经单独移出,作为ayui的扩展库,需要此功能,直接单独引用即可。ay.framework.wpf移出部分demo的图片,让框架轻小,目前967k

Image 20.png

版本:3.3.1

需求:   3个空显示器A(主显示器) B(显示器) C(显示器)

a窗体投影到B显示器,如果B显示器没有内容,自动显示,并记忆
c窗体投影到B显示器,此时有a窗体显示,提示当前显示器已经存在a窗体,是否替换,替换,关闭a窗体,显示c窗体。
c窗体投影到C显示器,此时c窗体在B显示器,则自动移动窗体到C显示器,保持c窗体的显示状态。

关闭程序,每次打开,自动将上次显示器对应的窗体的状态自动 恢复

显示器数量,AYUI框架,自动帮你检测

效果:

QQ图片20150725165620.jpg

AyTreeView添加菜单,非 遍历treeviewitem给每个item增加contextmenu,直接给AyTreeView增加的右键菜单,非item地方右击不显示菜单。

QQ图片20150725165959.png

利用AyPageWindow和 Ay的多显示器封装实现Page的在其他显示器显示。

使用方法如下

 AyPageWindow p = new AyPageWindow("page页面");
 p.ToExtensionMaxScreen(screenItem);
 p.Show();

使用ToExtensionMaxScreen的AY封装的方法,投影显示器。

修复 AyWindow的右上角按钮的控制是否显示的问题

修复 AyWindow的窗体第一最大化的时候,然后还原状态,不显示阴影,现在只要       WindowState="Maximized"就可以窗体第一次最大化了,ShadowMargin控制阴影大小






2015-7-1 01:01:41

修复 皮肤设置窗口,listbox选择问题,改为item单击事件,不再是selectionchanged事件

去掉wpfmediakit,wpfmediakit有很多不稳定的问题,比如有时候无法播放视频,改为mediaplayer,cpu和内存性能达到最好,cpu 1080p消耗从33%降到 6%

精简框架1.2M到 883k



2015-6-30 18:08:56

AYUI 3.2 发布,仅仅移除 海康监控,演示图片和视频,合并很多代码,优化很多代码


Image 4.png

没错,就这么多代码,看功能吧

暂时 treeview模式切换,请先点击左上角的LOGO

效果不放了,自己下载看效果吧

QQ图片20150630181649.png



2015-6-30 17:10:45

修复3.1问题:

修复 window,如果最大化按钮不可见,修改为则不可以三次单击最大化。修复 最大化按钮隐藏无效的问题。

修复 AySwitch的  checked值为true的赋值选中背景色无效

修复 皮肤窗口,第一次打开,选择已经设置的图片或者其他,使用图标会消失,全部增加判断了是否是当前,是的话,就不切换配色

更改WpfAnimatedGif.dll,换成性能最好的CSWPFAnimatedGIF,修改AyIconAll,Gif部分的代码,优化Icon的加载判断逻辑,但是gif不再支持packuri,只支持本地图片gif模式

移除PixelLab.dll,DotNet.Utilities.dll还有很多其他的dll,只保留一些可能需要的dll,精简代码

增加 AyGifControl控件,改了 CSWPFAnimatedGIF 部分代码

增加 TransitionPresenter 高级控件,原来的pixelLab中的,已测试可以使用

增加 TemplateBorder 继承Border的 控件,就是个绑定了父类部分border值的控件

    <Style TargetType="control:TemplateBorder">
        <Setter Property="Background" Value="{Binding Path=Background, RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}" />
        <Setter Property="BorderBrush" Value="{Binding Path=BorderBrush, RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}" />
        <Setter Property="BorderThickness" Value="{Binding Path=BorderThickness, RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}" />
        <Setter Property="Padding" Value="{Binding Path=Padding, RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}" />
    </Style>


3.2 新增:

AyTreeView的Icon模式,增加枚举

    public enum IconMode
    {
        Icon,
        IconText
    }

但是Icon模式  只完美支持 2个层级的  treeview

可以动态切换AyTreeView的模式了。

修改AyTreeView的 前方展开三角的 点击范围,鼠标形状为手形状,移上去会变成固定白色





2015-6-26 18:26:07

下载地址: http://pan.baidu.com/s/1mgraAc4

体验版本,移除了海康的 功能,去掉了2个视频,所以体积小了20M

尊享配色完成,修复皮肤窗口跟Tab平齐的地方导致不能拖动的问题

zun1.png

QQ图片20150626182701.png

使用  那个图标 外观稍微改了下



2015-6-25 17:56:35

完善视频背景功能

发布 3.0 AYUI体验版

为什么升级到3.0,因为Aywindow和Aypopup核心控件已经完全更新,且使用方法也已经更新,但是部分文章还没来得及更新,等差不多完整的时候,再发布视频教程



2015-6-23 17:31:58

7.gif


2015-6-18 18:21:38

重构滚动条为浮动,可系统设置滚动条高度或者宽度以及圆角的滚动条,可以设置为点击时候滚动条的透明度,默认是0

调整窗体拖拽到窗体边缘外,这样就不会与窗体的内容冲突

6.gif


2015-6-17 17:37:26    纯ListView,性能比GridView好点,样式还没来得级调整, 表头的右侧的 竖线是可以控制是否显示的

34.gif

表格线


2015-6-16 18:00:25


2015-06-12 18:12:05

先尝试左侧遮罩自动配色


2015-06-12 17:52:09

迁移90%控件使用DEMO,AyWindow增加WindowMenu属性,如果窗体指定这个菜单,则窗体右上角就会多出个菜单按钮,点击可以打开菜单,菜单自己定义

窗体颜色系统:准备这样定义,如果是背景图片,则会自动根据图片调节UI系统的所有配色,如果是我定义的配色方案,则是我定义好的,但是炫彩支持还是可以调节的。已经可以第一次打开自动配色,但只实现了部分颜色替换。

6.gif



2015-6-11 17:07:39

1.AyWindow 增加高斯模糊GaoSiRadius,和4个扩展透明度属性RectangleOpacity1,RectangleOpacity2,RectangleOpacity3,RectangleOpacity4,阴影重写,自动记住炫彩设置

2.AyWindow 增加TitleVisibility,用来是否显示左上角的 窗体名字,因为只有设置了,不显示,任务栏上才能有你的应用的名字

效果预览:



2015-6-9 14:14:16

AyWindow增加  三击最大化或者还原窗体

增加 MinWidth和MinHeight的 调整大小限制


2015-6-8 19:07:32

DEMO 基本演示,左侧是AyTree

tree.gif


2015-6-8 11:40:06

Image 5.png

 新版AyWindow AyPopup 布局  支持 内容便宜到标题栏,而不影响标题栏右侧按钮的点击 

 AyTabControl 增加AyTabPanelMargin,用来控制 AyTabPanel的Margin,比如上图的tabcontrol的第一个item距离左边的距离,就是通过此属性控制


2015-6-5 17:15:46

AyWindow升级, 优化去掉不用的属性,优化部分代码,降低40%内存,优化上角为 像素画Path,为换色做准备

31.gif



2015-6-5 16:01:17

像素化 Path高清带边框,实现多彩

像素画.gif


2015-6-3 18:37:27

AyColorPicker和AyColorPickerDialog 

331.gif

支持透明色, 尚未增加推荐色位属性




2015-6-2 15:42:54

AySlider,  建议 横向模式,不设置height,   纵向模式不设置 Width


属性默认值使用说明
Icon(string类型,来自AyIconAll的Icon,支持path,ico,png,jpg,gif,fontawesome写法 )path_Ellipse详情见AyIconAll用法
ThumbStroke (Brush类型)跟着主题走,可修改,FF84BDDA,资源Key = HoverButtonBorderColor调整AyIconAll的Stroke
ThumbFill (Brush类型)White调整AyIconAll的Foreground
ThumbStrokeThickness(double类型)1.0调整AyIconAll的StrokeThickness
ThumbWidth22.00
调整AyIconAll的Width
ThumbHeight22.00调整AyIconAll的Height
ToolTipOpacity0.8
调整 值提示框的透明度,调整为0 则提示不显示
ToolTipRadius5.0值提示框圆角
ThumbShadowStrokeBlackThumb的阴影色,无法设置,自动根据ThumbStroke计算的
IconFontSize16.00
调整AyIconAll的FontSize
CompletedFill跟着主题走,可修改,FF7Eb4EA 资源Key=Ay.SliderThumb.Track.Selected.Background
UnCompletedFill跟着主题走,可修改,B7B7B7资源Key=Ay.SliderThumb.Track.Static.Background
HighlightFill跟着主题走,可修改,FF226584资源Key=Ay.SliderThumb.PART_SelectionRange.Fill高亮范围颜色设置,Slider默认设置,例如SelectionStart="10"  SelectionEnd="40" HighlightFill="YellowGreen" Minimum="0" Maximum="100" Value="50" 其中 IsSnapToTickEnabled="True"可设置为整数移动
TrackWidth2.0
纵向Slider时候,就是轨道的宽度,横向时候就是Slider的轨道的高度

效果图预览:

AySlider.gif


代码:

<control:AyWindow x:Class="WpfApplication11.Window5"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    	xmlns:control="clr-namespace:Ay.Framework.WPF.Controls;assembly=Ay.Framework.WPF" 
          xmlns:Behaviors="clr-namespace:Ay.Framework.WPF.Behaviors;assembly=Ay.Framework.WPF"
         Title="Ay的Slider控件" Height="400" Width="600" WindowStartupLocation="CenterScreen"
          
        >

    <Grid x:Name="LayoutRoot">
        <Border Background="#CCFFFFFF" Padding="5" >
            <Canvas>

                <control:AySlider HorizontalAlignment="Left"   IsSnapToTickEnabled="True"  SmallChange="1" VerticalAlignment="Top" Height="30" Width="201" 
                                  Minimum="0" Maximum="100" Value="50"
                                  Icon="path_TickTop"
                                  ThumbHeight="25" ThumbWidth="12" Canvas.Left="28" Canvas.Top="10"/>
                <control:AySlider HorizontalAlignment="Left" IsSnapToTickEnabled="True" VerticalAlignment="Top" Height="218" Orientation="Vertical"
                                   Minimum="0" Maximum="100" Value="50"  IsSelectionRangeEnabled="True" Canvas.Left="28" Canvas.Top="60"/>
                <control:AySlider HorizontalAlignment="Left" IsSnapToTickEnabled="True" VerticalAlignment="Top" Height="218" Orientation="Vertical"
                	Minimum="0" Maximum="100" Value="50"  IsSelectionRangeEnabled="True" Canvas.Left="85" Canvas.Top="60" Icon="pack://application:,,,/Ay.Framework.WPF;component/Resources/ay.gif"/>

                <control:AySlider x:Name="as1" HorizontalAlignment="Left" IsSnapToTickEnabled="True" VerticalAlignment="Top" Height="218"  Orientation="Vertical"
                	Minimum="0" Maximum="100" Value="50"  IsSelectionRangeEnabled="True" Canvas.Left="152" Canvas.Top="60" Icon="fa_book" IconFontSize="40" ThumbHeight="40" ThumbWidth="40"/>

                <control:AySlider x:Name="as2" HorizontalAlignment="Left" IsSnapToTickEnabled="True" VerticalAlignment="Top" Height="218"  Orientation="Vertical" TrackWidth="20" CompletedFill="#EF1A6A" UnCompletedFill="#FFD7E6" ThumbStroke="#72B504" ThumbFill="#C9FBC2"
                	Minimum="0" Maximum="100" Value="50"  IsSelectionRangeEnabled="True" Canvas.Left="216" Canvas.Top="60" Icon="fa_book" IconFontSize="40" ThumbHeight="40" ThumbWidth="50"/>

                <control:AyComboBox  VerticalAlignment="Center" Width="120" PanelMaxHeight="200" x:Name="cboFontAweEnum" SelectionChanged="cboFontAweEnum_SelectionChanged" Canvas.Left="109" Canvas.Top="295"/>
                <control:AySlider HorizontalAlignment="Left" ToolTipRadius="10"   IsSnapToTickEnabled="True"  SmallChange="1" VerticalAlignment="Top"  Width="201" 
                	Minimum="0" Maximum="100" Value="50" ThumbStroke="#F23C3C"
                	Icon="/Ay.Framework.WPF;component/resources/demo/sliderdemo.png" CompletedFill="#DE0A0A"
                	ThumbHeight="32" ThumbWidth="32" Canvas.Left="300" Canvas.Top="31"/>
                <control:AySlider HorizontalAlignment="Left" ToolTipOpacity="0.5"   IsSnapToTickEnabled="True"  SmallChange="1" VerticalAlignment="Top"  Width="201"  CompletedFill="#ECCF12" ThumbWidth="70" ThumbHeight="80"  IconFontSize="40" ThumbStroke="#EF9F69"
                	Minimum="0" Maximum="100" Value="50"
                	Icon="path_ay"
                	  Canvas.Left="300" Canvas.Top="91"/>
                <control:AySlider HorizontalAlignment="Left" ToolTipOpacity="1"   IsSnapToTickEnabled="True"  SmallChange="1" VerticalAlignment="Top"  Width="201" ThumbWidth="40" ThumbHeight="40"  
                                  IconFontSize="40" ThumbStroke="#F78F16" UnCompletedFill="#F4D9A4"
                	Minimum="0" Maximum="100" Value="40" TrackWidth="18" 
                	Icon="fa_star"
                	Canvas.Left="300" Canvas.Top="165">
                    <control:AySlider.ThumbFill>
                        <RadialGradientBrush>
                            <GradientStop Color="#FFFBAC39" Offset="0"/>
                            <GradientStop Color="#FFF0BD38" Offset="1"/>
                            <GradientStop Color="#FFFB7200" Offset="0.653"/>
                        </RadialGradientBrush>
                    </control:AySlider.ThumbFill>
                    <control:AySlider.CompletedFill>
                        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                            <GradientStop Color="#FFBEF014" Offset="0"/>
                            <GradientStop Color="#FFD3F112" Offset="1"/>
                            <GradientStop Color="#FF92BB07" Offset="0.516"/>
                        </LinearGradientBrush>
                    </control:AySlider.CompletedFill>
                </control:AySlider>
                <!--<control:AySlider HorizontalAlignment="Left"  Margin="300,0,0,0" IsSnapToTickEnabled="True" VerticalAlignment="Top" Height="218.112" Width="39.042" Orientation="Vertical"
                                  SelectionStart="10"  SelectionEnd="40" HighlightFill="YellowGreen" Minimum="0" Maximum="100" Value="50"  IsSelectionRangeEnabled="True"/>-->
            </Canvas>


        </Border>

    </Grid>
</control:AyWindow>



2015-06-01 09:00:41

优化AyTreeViewItemModel,使得创建子AyTreeViewItemModel时候无需 children.add了,指定父类自动是父类的子类

例如这样的子类,直接指定AyTreeView的itemssource即可

        public ObservableCollection<AyTreeViewItemModel> CreateTreeData()
        {
            ObservableCollection<AyTreeViewItemModel> list = new ObservableCollection<AyTreeViewItemModel>();

            AyTreeViewItemModel root = new AyTreeViewItemModel("热力公司", "fa-bank", null, true);
            list.Add(root);
            AyTreeViewItemModel vfen = new AyTreeViewItemModel("V分公司", "fa-building", root, false);
            AyTreeViewItemModel vfen1 = new AyTreeViewItemModel("V换热站", "fa-home ", vfen, false);
            AyTreeViewItemModel changfen = new AyTreeViewItemModel("长丰片区", "fa-building", root, true);
            AyTreeViewItemModel changfen1 = new AyTreeViewItemModel("长丰换热站", "fa-home", changfen, false);

            AyTreeViewItemModel changfen1_1 = new AyTreeViewItemModel("长丰小区", "fa-binoculars", changfen1, false);
            AyTreeViewItemModel changfen1_1_1 = new AyTreeViewItemModel("长丰楼", "fa-building-o", changfen1_1, false);
            AyTreeViewItemModel changfen1_1_1_1 = new AyTreeViewItemModel("长丰单元", "fa-keyboard-o", changfen1_1_1, false);

            AyTreeViewItemModel changfen1_1_1_1_1 = new AyTreeViewItemModel("106111", "fa-cc-discover", changfen1_1_1_1, false);
            AyTreeViewItemModel changfen1_1_1_1_2 = new AyTreeViewItemModel("A11", "fa-cc-discover", changfen1_1_1_1, false);
            AyTreeViewItemModel changfen1_1_1_1_3 = new AyTreeViewItemModel("108111", "fa-cc-discover", changfen1_1_1_1, false);
            AyTreeViewItemModel changfen1_1_1_1_4 = new AyTreeViewItemModel("108112", "fa-cc-discover", changfen1_1_1_1, false);
            AyTreeViewItemModel changfen1_1_1_1_5 = new AyTreeViewItemModel("10822", "fa-cc-discover", changfen1_1_1_1, false);
            AyTreeViewItemModel changfen1_1_1_1_6 = new AyTreeViewItemModel("109111", "fa-cc-discover", changfen1_1_1_1, false);
            AyTreeViewItemModel changfen1_1_1_1_7 = new AyTreeViewItemModel("10922", "fa-cc-discover", changfen1_1_1_1, false);
            AyTreeViewItemModel changfen1_1_1_1_8 = new AyTreeViewItemModel("110111", "fa-cc-discover", changfen1_1_1_1, false);
            AyTreeViewItemModel changfen1_1_1_1_9 = new AyTreeViewItemModel("14122", "fa-cc-discover", changfen1_1_1_1, false);
            AyTreeViewItemModel changfen1_1_1_1_10 = new AyTreeViewItemModel("901", "fa-cc-discover", changfen1_1_1_1, false);
            AyTreeViewItemModel changfen1_1_1_1_11 = new AyTreeViewItemModel("902", "fa-cc-discover", changfen1_1_1_1, false);
            AyTreeViewItemModel changfen1_1_1_1_12 = new AyTreeViewItemModel("333", "fa-cc-discover", changfen1_1_1_1, false);
            AyTreeViewItemModel changfen1_1_1_1_13 = new AyTreeViewItemModel("A15", "fa-cc-discover", changfen1_1_1_1, false);
            AyTreeViewItemModel changfen1_1_1_1_14 = new AyTreeViewItemModel("A19", "fa-cc-discover", changfen1_1_1_1, false);

            AyTreeViewItemModel changfen1_1_1_1_15 = new AyTreeViewItemModel("AA1", "fa-building", changfen1_1_1_1, false);
            AyTreeViewItemModel changfen1_1_1_1_16 = new AyTreeViewItemModel("242", "fa-building", changfen1_1_1_1, false);
            AyTreeViewItemModel changfen1_1_1_1_17 = new AyTreeViewItemModel("31101", "fa-building", changfen1_1_1_1, false);
            AyTreeViewItemModel changfen1_1_1_1_18 = new AyTreeViewItemModel("A18", "fa-building", changfen1_1_1_1, false);
            AyTreeViewItemModel changfen1_1_1_1_19 = new AyTreeViewItemModel("A16", "fa-building", changfen1_1_1_1, false);
            AyTreeViewItemModel changfen1_1_1_1_20 = new AyTreeViewItemModel("A17", "fa-building", changfen1_1_1_1, false);


            AyTreeViewItemModel daqin = new AyTreeViewItemModel("大庆路片区", "fa-building", root, false);
            AyTreeViewItemModel daqin1 = new AyTreeViewItemModel("宏文路123号院站", "fa-home ", daqin, false);
            AyTreeViewItemModel daqin2 = new AyTreeViewItemModel("金台区纺西村站", "fa-home ", daqin, false);
            AyTreeViewItemModel daqin3 = new AyTreeViewItemModel("十二厂复兴村站", "fa-home ", daqin, false);
            AyTreeViewItemModel daqin4 = new AyTreeViewItemModel("十二厂西兴村站", "fa-home ", daqin, false);
            AyTreeViewItemModel daqin5 = new AyTreeViewItemModel("制氧家属院站", "fa-home ", daqin, false);
            AyTreeViewItemModel daqin6 = new AyTreeViewItemModel("中粮国际站", "fa-home ", daqin, false);


            AyTreeViewItemModel feidong = new AyTreeViewItemModel("肥东片区", "fa-building", root, false);
            AyTreeViewItemModel gendan = new AyTreeViewItemModel("大庆路片区", "fa-building", root, false);
            AyTreeViewItemModel gaoxing = new AyTreeViewItemModel("高新片区", "fa-building", root, false);
            AyTreeViewItemModel jiangtanlu = new AyTreeViewItemModel("姜谭路片区", "fa-building", root, false);
            AyTreeViewItemModel jinling = new AyTreeViewItemModel("金陵片区", "fa-building", root, false);
            AyTreeViewItemModel qiaobei = new AyTreeViewItemModel("桥北分公司", "fa-building", root, false);
            AyTreeViewItemModel qiaonan = new AyTreeViewItemModel("桥南片区", "fa-building", root, false);
            AyTreeViewItemModel zhenwu = new AyTreeViewItemModel("政务片区", "fa-building", root, false);

            return list;
        }

第4个参数,指是否展开节点,已经动画模式都支持默认展开了(v2.9.1版本)



2015-5-29 16:57:09

20150529143288966855682944c39f0.gif

增加Uc_HKControl  控制面板控件

优化DragInCanvasBehavior行为,让其不会拖出Canvas的范围,可以配置左键拖动,还是右键


使用DEMO

<Canvas ClipToBounds="True">
                <control:Uc_HKControl x:Name="uchkTest" Width="75" Height="75" Canvas.Top="10" Canvas.Right="10" >
                    <i:Interaction.Behaviors>
                        <Behaviors:DragInCanvasBehavior/>
                    </i:Interaction.Behaviors>
                </control:Uc_HKControl>
            </Canvas>
    	xmlns:control="clr-namespace:Ay.Framework.WPF.Controls;assembly=Ay.Framework.WPF" 
          xmlns:Behaviors="clr-namespace:Ay.Framework.WPF.Behaviors;assembly=Ay.Framework.WPF"


2015-05-28 19:30:32

新的控件架构方式,自己独创的,新的接口提供,第一个 无损 自定义形状的控件模式应用

下面的是我改版的 RepeatButton,如果上面的内容你使用 pathlistbox,将会导致RepeatButton在pathlistbox的item的时候失去焦点,导致mouseover效果不对,怎么解决,不过已经解决了,而且无损 放大指定形状的 指定类型的控件.

AyIconAll 设置了path模式和fontawesome的颜色为双向绑定。

332334.gif



2015-5-27 16:58:53

新增AyPath控件,用于优化AyIconAll,path模式的显示性能,此时更简单和轻松了

        <control:AyPath control:PathKey.Key="path_add" Width="36" Height="36" Padding="0"   Foreground="#000000" SnapsToDevicePixels="True"></control:AyPath>


2015-5-27 14:44:58

海康威视WPF版本 实时监控控件




2015-05-25 17:10:16 

AyTreeView高级效果演示

trr1.gif


三角形的旋转,鼠标移入三角的显示,鼠标选中 图标 反色,鼠标移入移出 拖影,选中效果,三角形范围更大,点击更准确

整行响应更准确,自动算 层级,自动距离左边.

超级难点:   mvvm中的 对象 转 TreeViewItem,才能 添加动画的支持.    这个最难,如果突破不了,什么都不可能,它才不像listbox那样就可以拿到item

                  节点的展开和收起的动画的添加, 超级难,不用 eventsetter,因为这使得事件在控件使用者地方了,肯定不行.

                  鼠标移入移出,选中,展开,收起,图标反色也是最小的难度.

                  展开时候,因为要计算 展开的高度,收起也要,而且你要对动画非常的了解,才能灵活应用,比如问题:动画执行完,属性无法更改,因为被锁定了,怎样解锁等

                  流畅度和内存控制,我已经很优化了,执行完就释放内存.

AyTreeView动画开关控制属性    --    TreeViewAnimationIsOpen

增加 TreeViewItemHeight高度,可以绑定调节


                  



2015-5-25 13:59:56

AyIconAll  的 fontawesome支持  fa-  或者 fa_    ,自动处理空白字符,例如首尾空白.



2015-05-23 10:34:04

新版 AyPropertyChanged类,支持linq的属性通知,支持其他类属性通知,支持多属性通知

Image 1.png

增加 ExecuteCommandAction,使用例如以下demo,暂时没什么用,可用CommandBehavior替代

   <StackPanel>
        <TextBlock Text="{Binding Student.StudentName, ElementName=uc}">
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="MouseLeftButtonDown">
                    <Behaviours:ExecuteCommandAction Command="{Binding Clicked, ElementName=studentsViewModel}" CommandParameter="{Binding Student, ElementName=uc}"/>
                </i:EventTrigger>
            </i:Interaction.Triggers>
        </TextBlock>
        <TextBlock Text="{Binding Student.Age, ElementName=uc}">
        </TextBlock>
        <TextBlock Visibility="Hidden" Height="0">
            <TextBlock.DataContext>
                <vm:StudentViewModel x:Name="studentsViewModel"></vm:StudentViewModel>
            </TextBlock.DataContext>
        </TextBlock>
    </StackPanel>
  public class StudentViewModel : AyPropertyChanged
    {
        public StudentViewModel()
        {
            Clicked = new ActionCommand(this.Click);
        }

        public ICommand Clicked { get; private set; }

        public void Click(object arg)
        {
            //为了演示需要,在这里用了一个MessageBox
            //应尽量避免在VM中揉杂UI交互功能
            MessageBox.Show((arg as Student).StudentName);
        }
    }
  public class Student : AyPropertyChanged
    {
        string studentName;
        public string StudentName
        {
            get
            {
                return studentName;
            }
            set
            {
                studentName = value;
                this.OnPropertyChanged(() => this.StudentName);
            }
        }

        int age;
        public int Age
        {
            get
            {
                return age;
            }
            set
            {
                age = value;
                this.OnPropertyChanged(() => this.Age);
            }
        }
    }

增加CommandBehavior 绑定Event对Command的绑定




2015-5-22 15:11:44

  1. AyWindow增加 是否可以拖动 CanDrag (bool型的)

  2. AyIconAll增加Stroke(Brush型)和StrokeThickness(double型)  可以控制字体描边和path的描边




2015-05-18 18:53:39

AySwitch竣工 青春版

   支持自定义尺寸,字体大小,两侧内容,两侧内容自动居中,是控件总长度减去滑块长度的剩余部分的水平居中,支持自定义2种状态颜色,缓冲动画,

ayswitch1.gif

示例代码,如上面截图




2015-05-05 14:30:23

MenuItem增加 Check,只要设置以下代码

 menuItem.IsCheckable = true;
  menuItem.IsChecked = true;

选中不选中的效果

1123.gif

调整多屏幕显示器的支持DEMO

  1.  支持 主屏幕不投影, 显示其他 连接上的显示器, 例如上图,   A,B,C,D,E  5个按钮,右键按钮,出现投影选项,可以将窗口最大化的投影到其他显示器,被投影的窗体没有最小化,最大化,皮肤,关闭按钮,一个窗口只能在一个显示器上显示.

  2. 窗口aa显示到A显示器,没有关掉,又投影到B显示器,效果是 移动那个窗口对象到B显示器,A没有内容了

  3. 打开程序时候,读取上次窗口投影记录,保持上次关闭程序时候投影的状态,关闭主窗口,全部关闭.

  4. 窗口aa显示到A显示器,没有关掉,又将bb投影到A显示器,效果是  提醒该显示器已经投影了"XXX"窗口,是否替换,替换了,aa窗口关闭,bb窗口显示在A显示器,注意MenuItem的checked情况,要后台设置原先的aa窗口对应的check要变为false,现在的true.


优化AyMessageBox,调整提示文本的宽度为固定,且最多显示2行.

Image 11.png

增加ShowQuestionOkCancel方法,效果如上,示例代码

 if (MessageBoxResult.OK == AyMessageBox.ShowQuestionOkCancel(string.Format("屏幕上已经存在\"{0}\"窗口,是否替换?", "热源纵览"), "提醒"))
 {
                    
 }






2015-04-30 17:48:57

AySimplyListView     继承Listview,性能比DataGrid好,如果你只是用于作为列表展示又需要表头,可以考虑,例如 日志等,表示很多需求还是需要用DataGrid,回家 封装DataGrid常见的需求DEMO

12.gif

但是他为 我的 ComboGrid打下了基础.




2015-04-27 17:38:00

完成 Button的 平面模式,ToggleButton的普通和平面模式

添加  AyButton.IsFlatStyle="True"  统一是否开启平面模式

例如 平面的SplitButton,其实 control是  xmlns:control="clr-namespace:Ay.Framework.WPF.Controls;assembly=Ay.Framework.WPF"

   
                <control:AySplitButton x:Name="spFlat2" VerticalAlignment="Center" 
				Width="118" FontSize="13" HorizontalAlignment="Right"  
            	Click="SplitButton_Click" 	
            	Height="25" Margin="0,16,317.5,18"
            	control:AyButton.IsFlatStyle="True"
            	Mode="ComboMenu" 
            	Placement="Bottom" >
                    <control:AySplitButton.Content>
                        <StackPanel Orientation="Horizontal">
                            <Image Height="16" Margin="0,0,7,0" Source="/Ay.Framework.WPF;component/resources/demo/icondemo3.png" Stretch="uniform" Width="16"/>
                            <TextBlock Text="精简开发" />
                        </StackPanel>
                    </control:AySplitButton.Content>
                    <MenuItem Header="WPF语言">
                        <MenuItem.Icon>
                            <Image Height="18" Source="/Ay.Framework.WPF;component/resources/demo/icondemo2.png" Stretch="Uniform" Width="18"/>

                        </MenuItem.Icon>
                    </MenuItem>
                    <MenuItem Header="WPF开发">
                        <MenuItem Header="Web开发">
                            <MenuItem.Icon>
                                <Image Height="18" Source="/Ay.Framework.WPF;component/resources/demo/icodemo1.png" Stretch="Uniform" Width="18"/>
                            </MenuItem.Icon>
                        </MenuItem>
                        <MenuItem Header="桌面程序开发">
                            <MenuItem.Icon>
                                <Image Height="18" Source="/Ay.Framework.WPF;component/resources/demo/icondemo3.png" Stretch="Uniform" Width="18"/>
                            </MenuItem.Icon>
                        </MenuItem>
                        <MenuItem Header="游戏开发"/>
                        <MenuItem Header="Winform开发">
                            <MenuItem.Icon>
                                <Image Height="18" Source="/Ay.Framework.WPF;component/resources/demo/icondemo3.png" Stretch="Uniform" Width="18"/>
                            </MenuItem.Icon>
                        </MenuItem>
                        <MenuItem Header="Silverlight"/>
                    </MenuItem>
                </control:AySplitButton>

平面的Button

      <Button Width="140" Height="28"  Click="SplitButton_Click" control:AyButton.IsFlatStyle="True" Margin="15,0,0,0">
                        <StackPanel Orientation="Horizontal">
                            <Image Height="20" Source="/Ay.Framework.WPF;component/resources/demo/book.png" Stretch="uniform" Width="20" Margin="0,0,5,0"/>
                            <TextBlock Text="我是很平的Button" VerticalAlignment="Center"/>
                        </StackPanel>
       </Button>

平面的ToggleButton,  平面模式支持背景色和Border颜色设置,不设置则是默认的主题颜色, 普通模式不支持背景色和边框颜色设置,受框架主题限制

  <StackPanel Margin="0,5" Orientation="Horizontal">
                <TextBlock Text="toggleButton演示,普通模式和平面模式" Width="250" Height=" 28" FontSize="14" Foreground="Red" Margin="5" VerticalAlignment="Center"/>
                <ToggleButton Content="10小时" Height="26" Width="70" Margin="5" />
                <ToggleButton Content="20小时" Height="26" Width="70" Margin="5"  />
                <ToggleButton Content="30小时" Height="26" Width="100" Margin="5" control:AyButton.IsFlatStyle="True" />
                <ToggleButton  Height="26" Width="26" Margin="5"   BorderBrush="#FF5C97DA" control:AyButton.IsFlatStyle="True">
                    <Image  Source="/Ay.Framework.WPF;component/resources/demo/icondemo3.png" Width="16" Height="16"/>
                </ToggleButton>
                <ToggleButton control:AyButton.IsFlatStyle="True" Height="26" Width="26" Margin="5"   BorderBrush="#FF5C97DA">
                    <Image  Width="18" Height="18" Source="/Ay.Framework.WPF;component/resources/demo/smile.png" Stretch="Uniform" />
                </ToggleButton>
                <ToggleButton control:AyButton.IsFlatStyle="True" Height="26" Width="26" Margin="5"   BorderBrush="#FF5C97DA">
                    <Image Source="/Ay.Framework.WPF;component/resources/demo/icondemo2.png" Width="16" Stretch="Uniform" Height="16"/>
                </ToggleButton>
                <ToggleButton control:AyButton.IsFlatStyle="True" Height="26" Width="26" Margin="5"   BorderBrush="#FF5C97DA">
                    <Image Source="/Ay.Framework.WPF;component/resources/demo/demo3.png" Width="16" Height="16"/>
                </ToggleButton>
                <ToggleButton control:AyButton.IsFlatStyle="True" Background="#B2CFDEE8" Height="26" Width="26" Margin="5"   BorderBrush="#FF5C97DA">
                    <Image Source="/Ay.Framework.WPF;component/resources/demo/demo3.png" Width="16" Height="16"/>
                </ToggleButton>
            </StackPanel>

效果图:

togglebutton.gif最后一个Toggle指定了背景颜色





2015-04-24 16:24:49

完成AySplitButton,继承Button类:

静态效果图:

Image 13.png


动态图演示:

demoSplit.gif


代码使用示例

  <control:AySplitButton x:Name="FlatSplitbuttonAy"  
            	Foreground="#030303" FontSize="12"
            	Click="SplitButton_Click" 
            	Width="118"  
            	Height="26"
            	IsFlatStyle="True"
            	VerticalAlignment="Center" 
            	HorizontalAlignment="Center"  
            	Mode="Split" 
            	Placement="Top" Margin="5,0,0,0"
						>
                    <control:AySplitButton.Content>
                        <StackPanel Orientation="Horizontal">
                            <Image Height="16" Margin="0,0,8,0" Source="demo3.png" Stretch="Fill" Width="16"/>
                            <TextBlock Text="美食快递" />
                        </StackPanel>
                    </control:AySplitButton.Content>
                    <MenuItem Header="WPF语言">
                        <MenuItem.Icon>
                            <Image Height="18" Source="icondemo2.png" Stretch="Uniform" Width="18"/>

                        </MenuItem.Icon>
                    </MenuItem>
                    <MenuItem Header="WPF开发">
                        <MenuItem Header="Web开发">
                            <MenuItem.Icon>
                                <Image Height="18" Source="icodemo1.png" Stretch="Uniform" Width="18"/>
                            </MenuItem.Icon>
                        </MenuItem>
                        <MenuItem Header="桌面程序开发">
                            <MenuItem.Icon>
                                <Image Height="18" Source="icondemo3.png" Stretch="Uniform" Width="18"/>
                            </MenuItem.Icon>
                        </MenuItem>
                        <MenuItem Header="游戏开发"/>
                        <MenuItem Header="Winform开发">
                            <MenuItem.Icon>
                                <Image Height="18" Source="icondemo3.png" Stretch="Uniform" Width="18"/>
                            </MenuItem.Icon>
                        </MenuItem>
                        <MenuItem Header="Silverlight"/>
                    </MenuItem>
                </control:AySplitButton>

 特色:支持 弹出框位置自定义

Image 14.png

支持3种模式 Mode

 public enum SplitButtonMode
    {
        Split, ComboMenu, Button
    }

支持默认是否明显显示右侧展开三角形,调节右侧三角形的border即可,调节属性 SanJiaoBorderOpacity     double类型  0-1之间取值

例如中间第二个就是明显显示了Image 15.png

支持按钮内容自定义 AySplitButton.Content属性,跟wpf自带的Button的Content一样.

对了,我们还支持 是否显示 三角形,来达到一个不显示三角形的 菜单效果, 请设置属性 SanJiaoVisibility="Collapsed"  就行了

当然,你还可以直接 就一个三角形按钮也行,下面是我给出的示例代码,这里要设置Padding等于0,来覆盖默认样式的padding,因为我的SplitButton可以自动适应内容,调节内容边距

  <control:AySplitButton x:Name="test_zuhe" Margin="5,0,0,0"
        	            Click="SplitButton_Click" 
        	            Height="65"
        	            VerticalAlignment="Center" 
        	            HorizontalAlignment="Center"  
        	            Padding="0"
        	            Mode="Split" 
        	            Placement="Bottom" 
			            >
                        <MenuItem Header="无内容模式"/>
                        <MenuItem Header="没有Content">
                            <MenuItem Header="padding要等于0"/>
                            <MenuItem Header="Split模式"/>
                        </MenuItem>
                    </control:AySplitButton>







2015-04-24 11:58:37

调整,    继承AyWindow和AyPopup的窗体默认 属于超高清模式 非普通画质,画质等级  低级-普通-中级-中等接近-高级-超高级


2015-04-24 10:08:22

调整菜单 最小宽度为174,并且调整menuitem的边距,让看起来更协调, 调整弹出位置与父控件左侧对其,由于 阴影的问题,牺牲了左侧的阴影,不过还好,不影响整体

Image 7.png




2015-04-23 17:37:43

AySplitButton,支持 三角左侧内容自定义,还未完全实现完,还要实现 ComboMenu


静态图演示


2015-04-23 14:21:24

  1. 修改Menu的部分样式,调整阴影 更平

Image 11.png



2015-04-22 17:40:05

透明度调节AyOpacitySetSlider样式, 支持垂直和水平模式, 支持 整型调整数字

12.gif


2015-04-22 11:43:57和2015-04-22 15:07:50

AyCheckBox   AyRadioButton 只是仅仅样式,控件还是 RadioButton,CheckBox

radio.gif

静态图片

Image 9.png





2015-4-14 17:44:03 

AyProgressBar样式完成,特色:支持动画时候,完成百分比连续动画,非完成部分白色

333.gif


2015-4-14 12:03:43

AyIconAll  是一个完全超牛的Icon控件,支持图片(原来Image控件支持的,支持ico),支持path,支持gif,支持fontawesome (支持fa-mobile的写法,在wpf中-变成了_而已,支持动态切换)

示例代码:

Image 10.png

Path的使用 path_ 开头定义图标,图标的data定义在application.xml中

Image 11.png

关于FontAwesome我已经封装成枚举,更方便使用了,你可以直接按照fa的方式去使用

Icon的图片方式,支持pack,支持相对路径

fonta.gif

path和fontawesome支持   颜色改变,根据Foreground更改,Path的宽和高是width和height,字体是fontsize,就当做textblock去调节就ok




2015-4-13 11:57:32

优化AyPopupWindow动画,不再偶尔卡顿

完成AyMessageBox

AyMessageBox是继承AyPopupWIndow,默认居中弹出,支持6套图标,图标来自AyIcons类

AyMessageBox支持自定义图标,可以控制标题栏高度,标题文字和LOGO,其他作用都是和MessageBox的参数一样,例如 是否删除对话框,点击确定,返回MessageBoxResult类型,你可以直接根据MessageBox的用法就会用了.

弹出框使用 DEMO

        private void openMessageBox_Click(object sender, RoutedEventArgs e)
        {
            if (cboMsgType.Text == "信息") {
                AyMessageBox.ShowInformation("必须填写用户名");
            }
            else if (cboMsgType.Text == "警告")
            {
                AyMessageBox.ShowWarning("必须填写用户名");
            }
            else if (cboMsgType.Text == "错误")
            {
                AyMessageBox.ShowError("必须填写用户名");
            }
            else if (cboMsgType.Text == "异常")
            {
                AyMessageBox.ShowError("必须填写用户名");
            }
            else if (cboMsgType.Text == "疑问")
            {
                AyMessageBox.ShowQuestion("必须填写用户名");
            }
            else if (cboMsgType.Text == "删除")
            {
                if (MessageBoxResult.OK == AyMessageBox.ShowDelete("确认删除吗", "删除"))
                {
                    AyMessageBox.ShowRight("操作成功!");
                }
                else {
                    AyMessageBox.ShowRight("操作已经被取消!","操作");
                }
            }
            else if (cboMsgType.Text == "ok")
            {
                AyMessageBox.ShowRight("操作成功!");
            }
        }

        private void openIconMessageBox_Click(object sender, RoutedEventArgs e)
        {
            AyMessageBox.ShowCus("确认删除吗", "", Environment.CurrentDirectory+"/images/sys_Remove.png");
        }

效果图:

AyMessagebox.gif


2015-4-10 17:54:36

AyWindow支持右侧4个按钮分别是否显示

Image 17.png

支持窗体icon和title设置,自动调整显示,图标请设置16*16的图标,因为模板不控制图标大小

主要为AyMessageBox打下基础


2015-4-10 17:18:46 AyPopupwindow更新

在原先的支持固定控件位置弹出,现又支持 居中弹出和右下角弹出(动画已经更新,出现是从下往上,关闭是从上往下)

支持窗体icon和title设置,自动调整显示,图标请设置16*16的图标,因为模板不控制图标大小

Image 16.png


2015-4-7 16:49:00

http://www.ayjs.net/post/79.html       AyCombobox,AyTextbox,AyAutoCompleteTextBox,AyScrollViewer已经完成


2015-03-31 13:10:05

Ay.Framework.WPF 架构优化,集成皮肤窗口,客户端无需单独设置,优化Application,客户无需记录打开窗口,优化关闭应用程序为OnExplicitShutdown,自带判断是否主窗口关闭,退出所有。去掉AyWindow的IsMainWindow属性。

新增CefSharp  谷歌37的浏览器控件,支持WPF,替代自带的WebBrowser,由于CefSharp的32位版本加载web有点慢,且不能AnyCPU,所以只能分为32版本和64位版本

整合背景图片文件夹和配置文件目录,优化xml读取

Image 2.png


2015-03-27 

AyTabControl

动态图:

AyTabControl1.gif

QQ图片20150326175742.png

Ay3DModelLoadControl

ay3dcontrol.gif

AyWindow

AySkinSetWindow

AyPopWindow

AyArcChart

AyFontRadioButton

AyFontButton

 

AyImage2Button

AyImage3Button

AyImage4Button(如AyWindow的右上角的4个按钮的状态)

AyPanel

ShowCurrentTime

AyContextMenu

AyMenu

Ay主题系统


推荐您阅读更多有关于“Ay.Framework.WPF,”的文章

猜你喜欢

已有9位网友发表了看法:

1#Ay  2015-11-30 16:08:16 回复该评论

好厉害呢

2#starkman  2015-08-20 15:00:43 回复该评论
不错
3#访客  2015-06-02 15:06:17 回复该评论
ay不错,我好好学习一下,像我这种水平有点困难
3#aaronyang  2015-06-02 19:03:41 回复该评论
你是哪位大神?
4#smallerpig  2015-05-18 20:13:01 回复该评论
不错不错,好牛逼的样子
5#访客  2015-05-07 16:58:16 回复该评论
楼主WPF功底不错啊!
6#木有名  2015-04-28 12:37:37 回复该评论
说好的,让我体验一把呢!
7#INK  2015-04-22 18:41:38 回复该评论
千呼万唤始出来,楼主牛逼哄哄 —— 厉害。
8#三台  2015-04-09 15:11:36 回复该评论
还说什么呢,快出!av快递查水表!

发表评论

必填

选填

选填

必填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

  查看权限

合肥科大智能常年招聘.NET,Java,Web前端,有想找想换工作的私聊我AY唯一QQ:875556003和AY交流

抖音号:wpfui,可以看到我的很多作品效果

AYUI8社区版Github地址:前往获取

作者:杨洋(AaronYang简称AY,安徽六安人)目前是个人,还没公司AY唯一QQ:875556003和AY交流

高中学历,2015年1月17日开始,兴趣学习研究WPF,目前工作繁忙,不接任何活

声明:AYUI7个人与商用免费,源码可购买。部分DEMO不免费.AY主要靠卖技术服务挣钱

不是从我处购买的ayui7源码,我不提供任何技术服务,如果你举报从哪里买的,我可以帮你转正为我的客户,并送demo

查看捐赠

AYUI7.X MVC教程 更新如下:

第一课 第二课 程序加密教程

vs2015 企业版密钥HM6NR-QXX7C-DFW2Y-8B82K-WTYJV

vs2017 企业版密钥NJVYC-BMHX2-G77MM-4XJMR-6Q8QF

标签列表