时间:2022年07月26日 | 作者 : aaronyang | 分类 : AY梦 | 浏览: 8749次 | 评论 4 人
AYUI7.7开发中
2022年12月9日
7.7.6.9
修复AyFolderPicker 的DefaultPath 默认绑定上次的路径有问题,现在修复了
迁移了ayui8的转换器
2022年7月26日
AYUI.ColorAssistant DEMO新增 响应式代码转换工具
关于类型,注意引入
xmlns:wd="clr-namespace:System.Windows.Controls;assembly=PresentationFramework"
xmlns:th="clr-namespace:System.Windows;assembly=PresentationFramework" xmlns:sys="clr-namespace:System;assembly=mscorlib"
示例资源类型
<sys:Double x:Key="DataGridCol1_TimelineWidthAndHeight">10.00</sys:Double>
<th:CornerRadius x:Key="DataGridCol1_TimelineCorner">10</th:CornerRadius>
<th:Thickness x:Key="DataGridCol1_TimelineMargin">0,18,0,0</th:Thickness>
转换后
<ResourceSetter ResourceValue="10,10,10,10" Scope="FindInUserControlResource" ResourceType="{x:Type th:CornerRadius}" TargetName="DataGridCol1_TimelineCorner"/>
<ResourceSetter ResourceValue="0,18,0,0" Scope="FindInUserControlResource" ResourceType="{x:Type th:Thickness}" TargetName="DataGridCol1_TimelineMargin"/>
<ResourceSetter ResourceValue="10" Scope="FindInUserControlResource" ResourceType="{x:Type sys:Double}" TargetName="DataGridCol1_TimelineWidthAndHeight"/>
然后你放入
<AyVisualStateManager.AyVisualStateGroups>
<AyVisualStateGroup>
<AyVisualState MinWindowWidth="260" SetterMode="End">
<DataSetter Property="FrameworkElement.Visibility" Value="Collapsed" TargetName="svMenu"/>
<ResourceSetter ResourceValue="10,10,10,10" Scope="FindInUserControlResource" ResourceType="{x:Type th:CornerRadius}" TargetName="DataGridCol1_TimelineCorner"/>
<ResourceSetter ResourceValue="0,18,0,0" Scope="FindInUserControlResource" ResourceType="{x:Type th:Thickness}" TargetName="DataGridCol1_TimelineMargin"/>
<ResourceSetter ResourceValue="10" Scope="FindInUserControlResource" ResourceType="{x:Type sys:Double}" TargetName="DataGridCol1_TimelineWidthAndHeight"/>
</AyVisualState>
</AyVisualStateGroup>
<AyVisualStateManager.AyVisualStateGroups>
AyVisualState 定义了一组指定窗体宽高size变化时候 执行的样式
<r:AyVisualState MinWindowWidth="810" MaxWindowHeight="1000" SetterMode="Continue">
当窗体小于等于810 并且 高度大于1000时候,SetterMode有2个值,End表示 匹配到这组样式后,下面的 VisualState就不去判断了,如果时Continue,还会向下匹配组,可能会覆盖上面同key的资源值。
Min开头的时 小于等于的判断 Max开头的是大于的 判断
默认值如下
2022年7月11日 7.7.6.5
修复AyIconAllButton的Icon值变化,UI上不会更新的问题
AyIconAll新增LoadIcon(string icon) 手动更改icon的值,以为有时候绑定Icon无效
修复响应式 AyVisualStateManager 寻找window资源和usercontrol资源的 找不到的问题
AyForminput增加isFirstInitPassword,临时解决,密码框 第一次set密码框时没问题的,第二次赋值有问题,使用这个属性,第二次赋值之前设置为true,设置完后设置为false
<control:AyFormInput MaxLength="20" isFirstInitPassword="{Binding isFirstInitPassword,Mode=TwoWay}" Grid.Row="4" IsPasswordBox="True" Grid.ColumnSpan="2" BorderBrush="#D9D9D9" Width="auto" Height="34" GridService.RowColumn="4 1" Password="{Binding FtpPwd,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}" HorizontalAlignment="Stretch" VerticalAlignment="Center">
</control:AyFormInput>
isFirstInitPassword = true;
FtpPwd = "";
isFirstInitPassword = false;
============
2022-3-24
修复aycombobox 不可编辑时候验证的问题
==========
2022年3月18日
7.7.6.2
修复很多AyTable的默认不影响使用的绑定错误,添加触屏滚动类TouchScrolling的支持
用法 TouchScrolling.IsEnabled =true 原理使用touch的滚动模拟 鼠标的滚动 ,这个滚动不会滚动到顶部或者底部,屏幕发生位移,缺点开启后,鼠标拖拉滚动条有问题
<ScrollViewer IsManipulationEnabled="False" PanningMode="None" Padding="{TemplateBinding Padding}" TouchScrolling.IsEnabled="True">
<ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</ScrollViewer>
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
ScrollViewer.VerticalScrollBarVisibility="Auto">
2020-9-14
修复AyWrapPanelFill 某些情况父容器滚动条不出现的问题
设置:NeedInvalidateMeasure=true就行了。
2020-8-26
修复 aytableview的行详情
现在当是多选的时候,单击行会展开详情,再单击会关闭,可以展开多个行详情
当是单选的时候,单击行会展开详情,再单击会关闭上次展开的那个
2020年8月19日
TitleMargin,TitleForeground,TitleFontsize
<control:AyWindow 这里属性TitleBarHeight="32" TitleVisibility="Collapsed" WindowEntranceBackgroundMode="0" Title="检">
<Grid Margin="0,-32,0,0" ClipToBounds="True" Background="Transparent">
<TextBlock x:Name="tbTitle" Text="检" FontSize="16" Foreground="White" Margin="-10,-10,0,0" HorizontalAlignment="Left" VerticalAlignment="Center">
</TextBlock>
AYUI7.6.6 beta
2020-4-21
AyImagePreview增加 IsHiddenYingArea="True"
永久不显示,鸟瞰图
2020-7-10 13:58:21
修复 AyCombobox关于tab键焦点的问题
2020-3-11
AyFilePicker增加IsLongPath,是否长路径,现在的返回的是文件名
======================AYUI7.6.5.5 beta===
2020-1-16
修改FluidWrapPanel控件
新增FluidMouseDragElementBehavior行为,让其支持 dragitem类的元素作为拖放的目标,这样摆放的单元就可以放入其他焦点元素,比如按钮
<Grid x:Name="layout" GridService.Rows="* 30"> <Image Name="imageFrame" Margin="4" Stretch="UniformToFill"> <i:Interaction.Behaviors> <control:FluidMouseDragElementBehavior DragButton="Left"></control:FluidMouseDragElementBehavior> </i:Interaction.Behaviors> </Image> <StackPanel Grid.Row="1"> <Button Content="手动挡" Click="Button_Click" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"></Button> </StackPanel> </Grid>
======================7.6.5.3发布 ===
2019-10-23 修复Ay表单控件,aycombobox在aylayer中验证后,不消失的问题
2019-7-24 修复AyTableView 全选可能存在重复数据的问题
======================7.6.5.2发布 ===
2019-7-17 12:14:25
修复AyDateBoxCalendar PickedDate第一次绑定显示问题
增加AyLayer的 动画方式关闭,非动画方式关闭,关闭时逻辑增加是否执行closed,现在自带的关闭,不会触发closed,所以现在在usercontrol的xaml.cs有4种关闭弹窗的方式,你可以取消按钮 this.CloseAyLayerNotTriggerClosed();保存按钮关闭时候调用回调的Closed的关闭方式 this.CloseParentAyLayer();
2019-7-16
修复aylayer弹层 拖到窗体外碰不到的问题
2019-7-10
修复日期控件日期内存问题,更流畅,换了验证逻辑
还有其他几个问题
2019-6-11
修复AyTableView,在HasRectangleSelection=true时候,日期控件焦点,类似弹窗类的焦点与表格焦点的冲突。
======================7.6.4发布 ===
2019-5-28 16:56:56 版本 付费用户先体验
AyTableView
新增 Ctrl+C复制单行,复制多行到Excel的 DEMO
事件名:OnCopyingRowClipboardContent
粘贴Ctrl+V事件 Ctrl+C 粘贴多行到AyTableView的 DEMO
事件名:OnPastingRowClipboardContent
控制是否启用粘贴 IsEnabledPaste属性,默认false,
新增多选时候,支持Ctrl+A 全选
2019-5-8 09:52:27 尚未发布
修复AyLayer,当AyLayerOptions的ShowAnimateIndex为0,无弹窗动画效果时候,阴影设置无效的问题
2019-5-7 17:05:02 客户已经开始体验
AyFormInput增加 FormatNumber属性,针对IsNumberBox=true时候使用的
写法:string.Format("{0:" + FormatNumber + "}");
案例:比如数字保留2位小数,使用F2即可。
特殊:绑定的Text的类型不能是double,要是string类型的。
2、格式化货币(跟系统的环境有关,中文系统默认格式化人民币,英文系统格式化美元)
代码如下:
string.Format("{0:C}",0.2)
结果为:¥0.20 (英文操作系统结果:$0.20)
默认格式化小数点后面保留两位小数,如果需要保留一位或者更多,可以指定位数
代码如下:
string.Format("{0:C1}",23.15)
结果为:¥23.2 (截取会自动四舍五入)
格式化多个Object实例
代码如下:
string.Format("市场价:{0:C},优惠价{1:C}",23.15,19.82)
3、格式化十进制的数字(格式化成固定的位数,位数不能少于未格式化前,只支持整形)
代码如下:
string.Format("{0:D3}",23) //结果为:023
string.Format("{0:D2}",1223) //结果为:1223,(精度说明符指示结果字符串中所需的最少数字个数。)
4、用分号隔开的数字,并指定小数点后的位数
代码如下:
string.Format("{0:N}", 14200) //结果为:14,200.00 (默认为小数点后面两位)
string.Format("{0:N3}", 14200.2458) //结果为:14,200.246 (自动四舍五入)
5、格式化百分比
string.Format("{0:P}", 0.24583) //结果为:24.58% (默认保留百分的两位小数)
string.Format("{0:P1}", 0.24583) //结果为:24.6% (自动四舍五入)
6、零占位符和数字占位符
代码如下:
string.Format("{0:0000.00}", 12394.039) //结果为:12394.04
string.Format("{0:0000.00}", 194.039) //结果为:0194.04
string.Format("{0:###.##}", 12394.039) //结果为:12394.04
string.Format("{0:####.#}", 194.039) //结果为:194
2019-4-25
修复 zhongduan样式,窗体弹层的问题。
======================AYUI7.6.3.5===
2019-3-19
修复AySplitView默认右侧的问题
修复ayiconall 字体图标时候 fontsize不同步变化的问题,已经换成绑定。
2018年11月8日21:34:41
AyTableView新增 OnUnCheckAll和OnCheckAll事件,配合 OnMultipleSelectionAdd和OnMultipleSelectionRemove 实现多选时候触发
2018-8-25
AyPanel新增TitleContentBorderThickness
AyTableView新增 ScollViewer类型ContentScollViewer,方便用户拿到,然后可以控制定位到某一行
AySplitButton 新增 DropButtonClickMode属性 控制右侧 下拉按钮的触发方式,有Pressed,Hover,Release
7.6.2.8 已发布
修复7月11日之前的debug
修复AyMessageBox的Promt的密码模式的bug
修改MvcFramework的AyPropertyChanged的通知属性为 从protected变成public 方便在controller中 触发改变通知
修复弹层默认layerId导致的null的bug
优化aytableview,新增 性能方式的 动态增加列
修复6月11日之前的bug
2018-5-29 16:12:22 7.6.1.8
AYUI支持 彩色多段Path了。
2018-5-24 1 7.6.1.6
AyRadioBoxList
AyCheckBoxList 全换成SelectedValue 驱动 选择项的选中,这样方便set,和get,二者都新增Click事件,
AyCheckBoxList 新增char类型的SplitChar属性,用于分割 选项值
======================AYUI7.6.1.32018-5-21 发布===
2018-5-19 22:05:51
分页控件修改,使用时候先设置total,然后在绑定itemssource,保证不会再有总数为0的问题了。
2018-5-18 17:03:19
AyTableView新增 OnSelectionChanged,OnMultipleSelectionAdd,OnMultipleSelectionRemove事件,可以做联动表格demo了。
分页控件部分重构,修复显示问题
AyMessageBox修复 置顶问题
2018-5-14 10:28:39
新增 AyBackgroundLayer支持#CCCCCC 这种纯色路径
================================= AYUI7.6 分割线=================
2018-5-11 17:45:20
修复异常弹窗问题
2018-5-8 16:00:05
完成AyTableView 百分比宽度,小于等于1 是百分比宽度, 大于1是具体宽度值,百分是基于 当前AyTableView宽度,减去 具体宽度的综合,剩余宽度乘以你定义的百分比的值得到的宽度。
优化AyTableView单行列头的性能。
修复AyTableView的HasCheckBoxColumn等于true时候,点击checkbox,selecteditem没有值的bug
拓展AyTableView支持ScrollViewStyle 自定义滚动条外观,支持ScrollViewer.HorizontalScrollBarVisibility和VerticalScrollBarVisibility
2018-4-23 16:53:32
修复AyMessageBox.Show("")时候,在owner未显示的时候,会报null的问题
2018-3-27 14:45:16
修复 FluidWrapPanel的 itemssource动态增加和 减少时候,界面的反馈。
修复AyTableView 选中单条和多条 ,清空数据,遗留的选中对象的问题
新增AyTableView 异步加载进度层 模板,和是否busy的状态
2018-3-20 11:40:17
AyWindow新增ayLayerAboveArea的grid,用于调节在弹层之上的内容
和AllCP用于window的内容的调整,比如 透明,比如 margin等
修复其他部分控件bug
2018-2-27 20:45:56
AyLayerOptions新增 WhenShowDialogNeedShake的bool ,当aylayer,showdialog时候,点其他区域是否 抖动内容。
修AyLayer的closed问题,新增直接关闭,非动画关闭AyLayer的拓展方法CloseParentLiAyLayer()
====================2018-1-29 7.5发布,新增大型AyTableView控件
其他bug
2017-12-21 10:48:59
重构AyTableView,适应各种需求,全虚拟化实现需求。
AyColorPicker 新增 屏幕取色
为适应AyTableView,通知实体增加一些新属性,增加对象Clone方法,深拷贝对象。
优化主题切换速度,现在客户端的样式资源不会二次加载,只会第一次加载。
AyPropertyChanged新增AYID
修复IfElseConverter 转换 单例
新增IfElseResourceConverter 转换器 多例 二者新增语法 ,在参数Formatter指定
/// 0|1:男,2:女,3:不男不女#未知
/// 0:男,1:女,2:不男不女#未知
/// 0:男:女
===================
修复aytextbox的MaskFontFamily属性问题
=======================beta 截止线
2017-11-24 09:27:55
=============AYUI 7.2.5.5 修复 START====
新增 AySetProperty 用户 事件触发器的 action,直接修改父级依赖属性
AyTreeView新增IsNeedMoveAndOpacity控制,动画中是否包含移动和渐变
OtherBorderTreeViewHeight因为有的treeviewitem具有border,所以计算动画,需要考虑这个属性,一般是2,如果没有border,请设置0
DepthIndent每个级别的item 动画移动的 增度,默认12
ExpandedTime 动画执行时长
修复MVC中 AppLoadStart在某种情况下报错
修复AyFormInput 数字模式和整数模式下的 粘贴文本的问题,现在数字 模式,粘贴时候只保留 数字和点号,整数模式只保留数字。
===============AYUI 7.2.5.5 修复 End=============================
AYUI7
2017-11-8 16:58:41
修复客户端 的styles/资源字典 中,无法使用static 的baseon继承样式的问题,现在可以使用了。
2017-10-30 09:31:11
修改 contents/config/pathicon.xml为 资源类型,项目模板更改,可视化支持在新建完项目后,不需要手动加路径了。
2017-10-20 已发布 (版本7.2.3)
修改AyLayer的移动方式,现在只能标题栏目拖动了,
AyLayerOptions移除ContentMargin,ContentVerticalAlignment,ContentHorizontalAlignment
添加了Border类型的TitleBar和 AyLayerDockDirect枚举类型的Direction
控制弹窗位置
public enum AyLayerDockDirect
{
LT,
CT,
RT,
LC,
CC,
RC,
LB,
CB,
RB
}
修改错误信息弹层,和框架中的 用户反馈页面的弹层部分东西。
重构AyToolTip从usercontrol变成了普通控件,你可以重写AyToolTip的模板,从而达到 自定义提示框的外观了。如果你默认改了aytooltip的外观,那么文本框中的错误提示也会换成你的。
因为重构,所以修复了AyLayer ,AY表单控件提示框(AyFormInput的子控件,AyComboBox,AyCheckBoxList,AyRadioBoxList) 移动导致 提示停留的问题。
=========================7.2.1============
2017-10-19 16:29:43
Ay.MvcFramework.Animation 动画库 升级1.5,可以支持,用户控件获得不到window时候的,动画名称的注册和取消注册等问题。
AyLayer 重构,变成了UserControl方式去做的,用法保持不变,以前的代码不用改。此时的AyLayer性能更省,支持关闭动画,现在的思路是,aywindow在模板中提供了AyLayerArea的grid,用户使用时候,show时候,如果没有设置owner,默认是找mainwindow,然后设置 弹层的owner,第一个参数owner现在是object,你可以传入Grid类型的容器,也可以传入AyWindow类型。传入AyWindow就是指定窗体的层,传入grid,就是grid的位置就是弹层区域。由于AyLayer现在不是window,所以他遮不住他的owner所在的窗体的winform控件,AyMessageBox还是window类型的,所以消息框不会有什么影响。
修复设计视图mvc的bug,
2017-10-18 16:59:11
修复 Mvc中 UserControl在AyLayer中 controller 类型无法识别的bug
修复AyWindow 子窗口的子窗口 关闭时候,父窗体置于其他程序窗口后面的问题,现在是新策略,性能更好了。
调整AyLayer和AyMessageBox的 开场 缩放动画时长由 750 缩短到450
修改 所有按钮的手势 换成了箭头,显的界面平。
Ay.MvcFramework.Animation 动画库新增 AyAniZoomBounceOut 出场动画类型,用于AyLayer和AyMessageBox的关闭。
2017-10-18 10:43:05
AYUI提供了 默认全显示器的 AyWindow 外观, 样式 资源名叫 ZhongDuan,
使用,在AyWindow上 指定, Style="{StaticResource ZhongDuan}",平时开发可以去掉此行代码,发布终端可以使用。
AyIconAll 不再继承UserControl,现在继承 ContentControl,性能更好点。
2017-10-17 18:21:30
AyWindow不再支持圆角窗体,DEMO移除ArcWindow窗体。
AyWindow不再支持 运行时的 是否遮盖任务栏。
2017-10-17 15:05:29
重构了 AyWindow测试:
AyWindow移除 阴影属性,TitleClickBarMode,请自己手动设置。新增RightButtonHeight替代原来的TitleBarHeight,现在TitlebarHeight主要控制内容距离窗体顶部的距离还有顶部 操作区域(移动双击拖到屏幕顶部) ,当然你也可以在内容上设置margin最好了。
1 常规window (下面加内容,顶部有32的高度)
<control:AyWindow x:Class="MVC7Application.Views._ViewStart" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:control="http://www.ayjs.net/controls" TitleBarHeight="32" xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" BorderThickness="0" xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions" Foreground="Yellow" xmlns:controller="clr-namespace:MVC7Application.Controllers" MinWidth="1200" MinHeight="600" Width="1400" Height="800" Title="goodsdfsdf" xmlns:local="clr-namespace:MVC7Application.Views" WindowStartupLocation="CenterScreen" mc:Ignorable="d" > <control:AyWindow.DataContext> <controller:ViewStartController /> </control:AyWindow.DataContext> <!--<Grid x:Name="layout" GridService.Columns="10 * 10"> --><!--<Border AlignmentService.Alignment="s s" Background="BurlyWood"></Border> <Border AlignmentService.Alignment="s s" Background="ForestGreen" Grid.Column="1"></Border> <Border AlignmentService.Alignment="s s" Background="Orange" Grid.Column="2"></Border> <TextBlock FontSize="22" AlignmentService.Alignment="c c" Text="测试abcd"></TextBlock>--><!-- </Grid>--> <!--<Grid Margin="-1,-33,-1,-1" x:Name="layout" Background="Green"> --><!--<Grid Margin="0,-32,0,0" x:Name="layout" Background="Green">--> <!--<Frame Margin="0,0,0,0" Source="/MVC7Application;component/Views/Home/HomeView.xaml" NavigationUIVisibility="Hidden"></Frame>--><!-- </Grid>--> </control:AyWindow>
效果:
顶部双击最大化和移动,默认的 右侧内容, 皮肤 最小化 还原/最大化 关闭
2. 如果顶部的区域不想有响应 (想DIY窗体,但是想用我的右侧按钮组)
首先设置TitleBarHeight="0" 这样就不会有 顶部的 操作区域了。然后 现在按钮 高度是32了。由于没有TitleBarHeight了,所以窗体内容直接贴着窗体了,自动满屏,如果理想有距离,可以设置内容的margin,距离上方高度就行了。
3. 如果不想右侧按钮组,可以设置WindowRightButtonGroupVisibility="Collapsed" 这样你可以完全diy窗体了。
其他属性设置: ResizeMode决定窗体是否可以拖拉边缘调整大小。 IsCoverTaskBar=true,那么最大化就会覆盖任务栏,一般用于终端机器。
新重做的aywindow,请不要设置Allowtransparent=true 和windowstyle的值。保持默认即可,如果不想要阴影什么的。
顶部引入空间 xmlns:shell="clr-namespace:Microsoft.Windows.Shell;assembly=Ay.MvcFramework.Wpf"
<shell:WindowChrome.WindowChrome>
<shell:WindowChrome ResizeBorderThickness="6"
CaptionHeight="0"
CornerRadius="0"
GlassFrameThickness="0"
UseAeroCaptionButtons="false" />
</shell:WindowChrome.WindowChrome>
第一个值是6,请不要改, 第二个captionheight窗体顶部的操作区域高度 glassframethickness就是阴影。
新版AyWindow去掉了TitleBarClickMode,但是提供了SetElementMove
control:AyWindow.SetElementMove="MoveAndDoubleClickMax"
你可以在xaml中 设置 需要作为操作 窗体区域的 元素了。
WindowEntranceBackgroundMode属性已经改了。注意备注。
/// 窗体入场模式 /// 0 默认 啥都有 /// 1 没有背景,没有右侧按钮组 /// 2 没有背景 /// 3 没有右侧自带的按钮 /// </summary> public int WindowEntranceBackgroundMode { get { return (int)GetValue(WindowEntranceBackgroundModeProperty); } set { SetValue(WindowEntranceBackgroundModeProperty, value); }
}
此次更改 相信基本需求都能满足了。
===============================2017-10-11======AYUI7.2 开发=========
MVC库 优化 路由 过滤器策略,实现跨程序集的 Controller层
Pure库 => AyCommon新增拓展方法
string ToPackUri(string filePath)
string ToPackUri(string filePath,string assemblyName)
System.Windows.ResourceDictionary ToResourceDictionary(Uri uri)
System.Windows.ResourceDictionary ToResourceDictionary(string uri)
System.Windows.ResourceDictionary ToResourceDictionary(string assemblyName, string filePath)
System.Windows.ResourceDictionary ToApplicationCurrentResourceDictionary(string filePath)
Uri ToUri(string Uri)
Wpf库 AyExtension下移除,原因 , AYUI要做到 不止一个客户端同时公用类库
移除ResourceDictionary CreateResourceDictionary(Uri uri) 请使用 AyCommon新增的拓展方法进行转换。
移除ResourceDictionary CreateResourceDictionary(string uri) 请使用 AyCommon新增的拓展方法进行转换。
由于移除以上,客户端代码请修改,且手动填写完整PackUri
请改成
===============================2017-10-10===AYUI7.1.2============
DEMO和AYUI7项目测试,插件开发整合,模板修复
vs2013以上的VS安装:
关闭所有VS后,双击AYUI7.vsix
安装后,新建AYUI7项目。
插件提供功能如下:
1.快速提示,在 xaml上 输入aymvc然后tab+tab,快速创建mvc的xaml级别的路由代码,也可以在xaml元素上使用Mvc.Event,Parameter,Action
在Controller级别里面,输入ayaction 然后tab+tab 快速创建 action代码段
输入ayconst 然后tab+tab 创建常量
在Model中输入 ayprop 然后tab+tab 快速创建 具有通知的属性
输入propr创建只读的依赖属性
输入aym 快速创建方法
2.MVC 三层右键菜单互相跳转,在xaml代码中右键,可以前往对应的 Controller和Model层,按下F7快速到xaml.cs文件
在Controller中右键,可以前往对应的View和Model层,还有xaml.cs层
在Model中右键,可以前往对应的View和Controller层,还有xaml.cs层
在xaml.cs中右键,可以前往Model和View和Controller层
WPF项目中右键,可以复制packuri路径,快速前往 消息key的文件 和 Session的Key文件
3. 提供项目模板, 创建AYUI7标准项目,可以创建MVC 3层的AyWindow,AyPage,Page,UserControl文件,可以创建 Ay验证器3种
AYUI7类库说明,对应的类库源码下有 txt说明文件。
1. Ay.MvcFramework (可用于任意wpf项目,使用ay的mvc模式)
- 引用Pure (Reference Pure.dll)
MVC库 => 用于定义客户端规范,例如:xaml拓展,过滤器等
2. Ay.MvcFramework.Animation (可用于任意wpf项目)
- 无引用 (No References)
AY动画库 => 用于处理和拓展动画
3. Ay.MvcFramework.AyFunc (可用于任意wpf项目)
- 引用Pure (Reference Pure.dll)
桌面开发功能库 => 中型纯方法库,用于桌面开发
4. Ay.MvcFramework.Config (可用于AYUI项目)
- 引用Pure (Reference Pure.dll)
用于管理AYUI项目的一些 目录配置等信息,这里包含了皮肤窗口Model和用于登陆窗口Model和序列化的信息
5. Ay.MvcFramework.CsShared (可用于任意wpf项目,程序集)
- 无引用 (No References)
MvvmLight的消息和AYUI.Session共享
6. Ay.MvcFramework.Pure(可用于任意C#项目)
- 无引用 (No References)
类型转换库 => 纯方法库,用于任意类型项目
7. Ay.MvcFramework.Wpf (可用于AYUI项目)
- 引用Mvc,Animation,AyFunc,Config,CsShared,Pure (Reference Mvc,Animation,AyFunc,Config,CsShared,Pure)
主题库=> 主题切换+ 控件 + 外观+AY表达式+wpf助手类
关于AYUI6升级AYUI7帮助 附件下载
===============================2017-09-30===============
AyDateBoxCalendar 焦点问题解决
===============================2017-09-29===============
修复AyWrapPanelFill在AyWindow的bug,最大化和还原后,自适应高度的问题。
修复 统计,提交,高亮控件的 Fixed问题,已经修复
AyFormInput 数字模式 外观改变,竖着的按钮换成 左右两边 AyTextBox新增leftContent属性。
===============================2017-09-26===============
移除很多的颜色,规范颜色。 修复AySlider的垂直模式模板问题
===============================2017-09-26===============
移除很多重复的颜色,统一以前部分的控件的 颜色,修改了MenuItem的高度和尺寸。
===============================2017-09-22===============
多国语言解决方案
AYUI默认 LanuageManager.DisabledLanuage = true; 表示在 皮肤通用设置 下 是不显示语言 下拉项的。
在application.xml下新增themeLanuage 节点,用于皮肤设置窗口 持久化保存的 节点。默认zh-cn
现在你可以在Contents/language下 新增自己的语言包了,这里的语言包是个 资源字典,取名key,然后是值。
添加1个语言包后,你可以 设置false,启用语言切换功能
然后你可以重写RegisterLanuages方法,添加你自己的语言包
如果你的目录不是标准目录,即 Contents/Lanuages的,你可以通过AyuiConfig.AYUI_LanuagePath然后修改 默认的文件夹目录
此时此刻,你已经可以很轻松的完成多国语言的 软件了。
===============================2017-09-22===============
新增IExceptionFilter 异常过滤器,新增一个自己的异常处理 模块,在Global中注册即可
AYUI目前内置 4种异常处理方式,Custom 是给有源码用户使用的。
Log是 输出日志模式,你可以设置输出文件的目录,如果有异常,自动会生成在那。
Simply是弹窗的方式,用于把程序打包好,给测试人员使用的
Filter方式,AYUI会在程序捕捉到异常,对异常进行 处理,然后传递给 你的过滤器,让你自己处理。
===============================2017-09-22===============
视图过滤器,请继承ViewAttribute ,实现自己的过滤器,此过滤器,用来放在Controller的上方,从而达到页面初始化时候,共享数据。
授权过滤器AuthorizeAttribute和普通过滤器ActionFilterAttribute 升级,通过filterContext.Route.Controller.ViewBag可以拿到ViewBag,从而达到,执行前后或者被授权标记的方法,可以共享一部分操作,共享数据。
如上,被UserInfo修饰的HomeController,则界面就可以使用
如果这里你共享获得一个列表,放在了3个controller,放心吧,每个controller上的ViewBag都是独立存在的,只是共享代码的返回值/操作。
场景,此时你又加了一个页面,需要 处理获得一批数据,A界面有,B界面也有,你直接在A和B的controller上方,加上这个 你自己写的特性就行了,就可以在界面上使用了。无需重复代码。而如果你通过AuthorizeAttribute和ActionFilterAttribute 获得的ViewBag是在操作后才有的,并不是在初始化Controller时候会触发的。
===============================2017-09-21===============
可视化开发,包括可配置获得图标,可视化
===============================2017-09-19===============
移除AppleColor和AppleColor2,移除AppleColorConverter和Apple2ColorConverter转换器。
移除SolidColorBrushToColorConverter和ColorToBrushConverter转换器
移除CalcConverter转换器,取而代之的是单例的DoubleConverter
用法<ColumnDefinition Width="{TemplateBinding Height, Converter={control:DoubleConverter}, ConverterParameter=2*4}" />
2*4代表 2是处理的值, 第二个参数4,代表除法, 1234分别代表加减乘除,这里就是ColumnDefinition 的width= Height除以2
移除 AyExpressionMultiConverter转换器,建议使用AyExpressionConverter,获得 AY表达式处理后的 字符串。用法value是要被处理的字符串,parameter是AY表达式。
在AYUI中,资源key是“AyMaskExpression”
重写 AyArcRectangleRadioButton控件外观模板,以前的有dpi的bug。
修复AyFormInput,AyCheckBoxList,AyRadioBoxList,AyComboBox的 tooltip相关,提交验证,窗体移动,切换page,等相关行为的修复,现在tooltip会跟着窗体走,并且一起消失。
AyImageList新增EditBarVisible属性,控制 编辑按钮栏目的可见性。这样就可以完成纯浏览图片模式了。
===============================2017-09-18===============
新增AppStartLoad特性,用来修饰AuthorizeAttribute. 有了它,加了特性的action,绑定的元素就会在程序第一次运行,你可以得到他的统一的控制。
用 AppStartLoad特性标记AuthorizeAttribute的子类,表示 此特性的授权过滤器 第一次会执行
=====================================================
AYUI7 爱奇艺某页面 响应式DEMO,AY响应式框架在MVC中,使用起来xaml级别,支持 显示器水平/垂直/任意 显示: 大于宽度和大于高度 触发器,小于宽度和小于高度 触发器,每个触发器支持是终止的,还是继续,如果继续,则会继续执行判断下面的触发器。关于设置值,提供DataSetter,依赖属性的值设置,提供ResourceSetter,完成 资源值的响应式更改,同理完成列表 不定name的对象的属性修改。完成响应式。支持page,usercontrol,window,任意FrameworkElement的子类的控件响应式调节。
效果图如下: DEMO体验下载
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
=====================2017-9-7==========
重写AySplitView,让它支持 在 隐藏区域和显示区域 都支持 x:Name,后台可以拿到,去掉了PaneConent的属性,直接在内容中写就行了。
新增AySplitViewService.ToggleMenu 这样开关不用后台去写了,支持button和togglebutton
<Button x:Name="test1" Width="100" Height="20" AySplitViewService.ToggleMenu="{Binding ElementName=sv}">menu开关</Button>
=====================2017-9-6==========
AyRadioBoxList和AyCheckBoxList支持 ItemStyle,可以单独设置 CheckBox和RadioButton的外观了。
因为winform控件的存在,所以有的逻辑在xaml.cs,执行可能业务涉及到controller,可能需要调用controller的东西,所以也要考虑过滤器的执行,或者不考虑,两种情况
在xaml.cs可以使用 Mvc.Use和Mvc.UseFilter,方式调用Controller中的action,一个不走过滤器另一个走过滤器。在Controller中调用xaml.cs的方法,使用AYUI.Message.Send ,在xaml.cs调用Controller使用Mvc.Use和Mvc.UseFilter
在aywindow和aypage后台 xaml.cs中,使用 Mvc.Use (直接调用Controller中的action,不走过滤器)
使用Mvc.UseFilter先 执行过滤器,再执行action,跟xaml中的route绑定逻辑一致,由于后台中无法获得owner和eventname,所以,你可以手动传递此参数,如果你需要的话。
可以传递路由模型信息。
最复杂的传递,可能你在Filter中需要信息,所以这里传递了。 其中6789是parameter参数,sender和e是事件的
Mvc.UseFilter(x => x.GetEmployeeInfo,6789,sender,e,new Ay.MvcFramework.AyMarkupExtension.CommandBehaviorBinding { Owner=btnUseFilter,EventName="Click"});
最简单的传递,无需参数,我提供了几种方法重载,同理Use也有,自己尝试吧。
Mvc.UseFilter(x => x.GetEmployeeInfo);
在AyWindow和AyPage无需在后台的构造函数写上
AyThread.Instance.InitDispatcher(Dispatcher);
现在在AYUI7中,也可以直接用了。
======================
多国语言问题,解决,目前支持配置方式的 字典切换,目前写了 英文和 简体中文的两种
AYUI 应国外的要求,优先支持 英语,简体中文,繁体中文,日文
=========================
为了解决 耦合性而拆分,为了企业增加适配和控件
AYUI从 7版本开始 ,细节版本号规则 年月日时
版本大名称 以 汽车的 相关单词命名, AYUI7 大名称叫 Axela
文件类库说明:
1. Ay.MvcFramework (可用于任意wpf项目,使用ay的mvc模式)
- 引用Pure
MVC库 => 用于定义客户端规范,例如:xaml拓展,过滤器等
2. Ay.MvcFramework.Animation (可用于任意wpf项目)
- 无引用
AY动画库 => 用于处理和拓展动画
3. Ay.MvcFramework.AyFunc (可用于任意wpf项目)
- 引用Pure
桌面开发功能库 => 中型纯方法库,用于桌面开发
4. Ay.MvcFramework.Config (可用于AYUI项目)
- 引用Pure
用于管理AYUI项目的一些 目录配置等信息,这里包含了皮肤窗口Model和用于登陆窗口Model和序列化的信息
5. Ay.MvcFramework.CsShared (可用于任意wpf项目,程序集)
- 无引用
MvvmLight的消息和AYUI.Session共享
6. Ay.MvcFramework.Office (可用于任意C#项目)
- 无引用
AY写的跟word和pdf的一些操作,目前测试的,属于额外的小拓展。
7. Ay.MvcFramework.Pure(可用于任意C#项目)
- 无引用
类型转换库 => 纯方法库,用于任意类型项目
8. Ay.MvcFramework.Axela (可用于AYUI项目)
- 引用Mvc,Animation,AyFunc,Config,CsShared,Pure
主题库=> 主题切换+ 控件 + 外观+AY表达式+wpf助手类
AYUI8 - Tesla, 待控件充足后,为了解决插件式,ayui做平台。
2017-9-1 17:40:04
为了规范消息ID和 Session的ID,新增App_Start文件夹,该文件夹下
有两个类文件,用于存放常量 string 的key,两个类一样的。
场景:由于Key是字符串,在项目中有不确定在哪的情况, 所以以后AYUI.Message.Register的key,也是你们说的token,存在MESSAGES.cs文件中,用于共享Action操作,
当然,同理Session的key也存在SESSIONS.cs文件中,方便强类型 读取。
在AYUI项目中,任意cs文件,可以右键呼出,快速定位文件
AYMVC 插件新增 ayconst提示
消息快速使用,为了解决跨程序集共享 Action<T>操作
所以在xaml.cs中注册消息,然后在Controller中可以 Send,触发消息,从而达到 Controller中可以操作xaml.cs的操作,因为在WPF中,winform不支持绑定,所以在controller中操作完数据后,可能需要触发xaml.cs后面定义好的方法。
Session的使用是键值对,刚网页的Session一样,说白了,就是个缓存。
我已经把他们封装在
Ay.MvcFramework.CsShared.dll
消息示例,引用Ay.MvcFramework.CsShared.dll
注册完后,在Controller中,使用
这里使用了MESSAGES来管理消息的Key,使得项目任意地方用,可以明确 作用。
2017-09-01 14:01:43
RouteSetter支持 IsSendEventArgs
AYUI7 MVC 提前预览
一个插件安装,享受所有快捷操作
静态图:
支持xaml中aymvc快速绑定多个操作
支持controller中 ayaction快速创建action代码块,
在AYUI应用程序的 Controller层,
在AYUI应用程序的 Model 层,
在AYUI应用程序的View 层,
在AYUI应用程序的View的后台 层, 3个都可以立即跳转
AYUI已经实现 Filter,支持在Controller中,使用ViewBag定义通知属性。
对于ActionFilterAttribute的子类(筛选器)
1.如果 单个Controller上方加上 Filter, 内部的 action没有加filter,默认controller级别的,里面的每个action都默认继承controller的filter
2.如果controller没有,而action上方有,采用 action级别的filter
3.如果有多个ActionFilterAttribute 筛选器,可以通过Odrer调整执行顺序,数字越小优先执行,如果不标记Order,默认从上往下的filter执行
过滤器执行规则: 从 Controller级别执行前-> action级别执行前 -> 执行 -> action级别执行后 -> Controller级别 执行后
测试-》Odrer调整执行顺序
[ExecuteTimeMonitor(Task = "获得用户信息", Order = 2)]
[AyLog(ModuleName = "获得用户信息", Order = 1)]
如果Controller也有同类筛选器,可以使用FilterScope调整执行策略
[AyLog(ModuleName = "获得用户信息模块")]
public class HomeController : Controller
{
public HomeController()
{
ViewBag.Title = "Ay.MVC框架";
}
//[Right("889b2c06-5f8b-4c7f-a2a8-9e61c1668ecd")]
//[ExecuteTimeMonitor(Task = "获得用户信息")]
//[AyLog(ModuleName = "获得用户信息", FilterScope = FilterScope.Both)]
[ExecuteTimeMonitor(Task = "获得用户信息", Order = 2)]
[AyLog(ModuleName = "获得用户信息", Order = 1)]
public ActionResult GetEmployeeInfo { get; private set; } = inParam =>
{
//业务逻辑
MessageBox.Show("GetEmployeeInfo:" + inParam.ToString());
};
默认执行策略是 FilterScope =FilterScope.Action,只执行Action上方的
如果FilterScope =FilterScope.Controller 只执行controller级别的
如果FilterScope =FilterScope.Both,先执行controller级别,再执行action级别
可以同时在一个action上,标记多个ActionFilterAttribute的子类,但是同一种类型,只能标记1个
关于 AuthorizeAttribute 授权筛选器使用
重写 public override bool OnAuthorization(IExecutionStrategy filterContext) 方法,返回true,则执行action,返回false,则不执行,区域触发规则同ActionFilterAttribute一致
推荐您阅读更多有关于“AYUI7,”的文章
抖音:wpfui 工作wpf,兴趣学习flutter
目前在合肥市某公司上班,已经厌弃,如果你的公司看的上我,加我QQ私聊
AYUI8全源码 Github地址:前往获取
杨洋(AaronYang简称AY,安徽六安人)和AY交流
高中学历,2010年开始web开发,2015年1月17日开始学习WPF
声明:AYUI7个人与商用免费,源码可购买。部分DEMO不免费
不是从我处购买的ayui7源码,我不提供任何技术服务,如果你举报从哪里买的,我可以帮你转正为我的客户,并送demo
查看捐赠AYUI7.X MVC教程 更新如下:
第一课 第二课 程序加密教程
已有4位网友发表了看法:
如果能开源最好了。好好学习一下。
谢谢楼主分享
期待最新DEMO~加油!
默默的关注,默默的点赞,不说话,
工作是公司的,身体是自己的
保重身体!
发表评论