当前位置: 首页 > news >正文

cms wordpress 国内杭seo网站建设排名

cms wordpress 国内,杭seo网站建设排名,html5彩票网站模板,呼和浩特网络推广公司文章目录 相关连接前言需要实现的效果附加属性添加附加属性#xff0c;以Test修改FontSize为例依赖属性使用触发器使用直接操控 结论 控件模板#xff0c;在HandyControl的基础上面进行修改参考HandyControl的源码控件模板原型控件模板 控件模板触发器完整样式简单使用 结论 … 文章目录 相关连接前言需要实现的效果附加属性添加附加属性以Test修改FontSize为例依赖属性使用触发器使用直接操控 结论 控件模板在HandyControl的基础上面进行修改参考HandyControl的源码控件模板原型控件模板 控件模板触发器完整样式简单使用 结论 相关连接 WPF控件模板(6) WPF 附加属性 WPF教程附加属性 前言 今天说服了领导用WPF开发前端原因就是开发相对来说比较方便写小项目就不用前后端分离什么的了。反正就是有个机会写WPF了真开心。我已经写了一年的Uniapp了 需要实现的效果 就是想写一个简单的变色控件。 附加属性 如果想知道附加属性就得先了解依赖属性。详细的可以看我这篇文章 WPF 用户控件依赖属性赋值 添加附加属性以Test修改FontSize为例 知道了依赖属性之后我解释一下附加属性是什么意思。附加属性就是为了方便在原有的控件基础上面进行细微的修改。我们先保证编译通过 附加属性的快捷键是propa 简单给TextBox添加一个附加属性 public partial class TextBlockExtension{public static int GetTest(DependencyObject obj){return (int)obj.GetValue(TestProperty);}public static void SetTest(DependencyObject obj, int value){obj.SetValue(TestProperty, value);}// Using a DependencyProperty as the backing store for Test. This enables animation, styling, binding, etc...public static readonly DependencyProperty TestProperty DependencyProperty.RegisterAttached(Test, typeof(int), typeof(TextBox), new PropertyMetadata(10));}这样我们就能编译通过了。 TextBlock Text用户 wpfEx:TextBlockExtension.Test2/依赖属性使用 依赖属性有两种使用方法 触发器使用 样式定义 !--一个简单的FontSize修改--Style x:KeyUserSelectionTargetTypeTextBlock!--因为Triggers只有等于判断所以这里简单写了一下--Style.TriggersTrigger PropertywpfEx:TextBlockExtension.TestValue10Setter PropertyFontSizeValue10 //TriggerTrigger PropertywpfEx:TextBlockExtension.TestValue20Setter PropertyFontSizeValue20 //Trigger/Style.Triggers/Style简单使用 TextBlock Text用户wpfEx:TextBlockExtension.Test10 Style{StaticResource UserSelection}/TextBlockTextBlock Text用户wpfEx:TextBlockExtension.Test20Style{StaticResource UserSelection}/TextBlock直接操控 附加属性修改 //如果想直接操控元素得在PropertyMetadata进行操控。记得设置初始值 public static readonly DependencyProperty TestProperty DependencyProperty.RegisterAttached(Test, typeof(int), typeof(TextBox), new PropertyMetadata(10,(s, e) {//s是控件本身var mdp s as TextBlock;//如果控件是该元素的父组件类似于Grid和DockPanel就使用Parent来寻找这里不展开//var mdpParent (s as FrameworkElement).Parent as TextBlock;if (mdp ! null e.NewValue ! null){mdp.FontSize (int)e.NewValue;}}));!--如果想要预览生效需要重新编译一下-- TextBlock Text用户wpfEx:TextBlockExtension.Test15/TextBlock TextBlock Text用户wpfEx:TextBlockExtension.Test20 /TextBlock !--因为我们设置了默认值为10所以这里是10-- TextBlock Text用户 /TextBlock !--优先级还是依赖属性高所以这里是30而不是默认值10-- TextBlock Text用户 FontSize30 /TextBlock结论 附加属性和依赖属性差不多就是声明麻烦一点。因为Get,Set是需要额外写的。 控件模板在HandyControl的基础上面进行修改 控件模板一般用于按钮我们只要会按钮的控件模板就可以了。 WPF控件模板(6) 参考HandyControl的源码 HandyControl 页面 HandyControl的Button有IconButton的样式源码。看一下还是挺有收获的。 参考样式代码 Style x:KeyButtonDashedBaseStyle BasedOn{StaticResource ButtonBaseStyle} TargetTypeButtonSetter PropertyBackground ValueTransparent/Setter PropertyTemplateSetter.ValueControlTemplate TargetTypeButtonhc:DashedBorder BorderDashArray3,2 BorderThickness{TemplateBinding BorderThickness} BorderBrush{TemplateBinding BorderBrush} BackgroundTransparent CornerRadius{Binding Path(hc:BorderElement.CornerRadius),RelativeSource{RelativeSource TemplatedParent}}StackPanel OrientationHorizontal HorizontalAlignment{TemplateBinding HorizontalContentAlignment} VerticalAlignment{TemplateBinding VerticalContentAlignment} Margin{TemplateBinding Padding}Path x:NamePathMain Width{TemplateBinding hc:IconElement.Width} Height{TemplateBinding hc:IconElement.Height} Fill{TemplateBinding Foreground} SnapsToDevicePixelsTrue StretchUniform Data{TemplateBinding hc:IconElement.Geometry}/ContentPresenter x:NameContentPresenterMain RecognizesAccessKeyTrue VerticalAlignmentCenter Margin6,0,0,0 SnapsToDevicePixels{TemplateBinding SnapsToDevicePixels}//StackPanel/hc:DashedBorderControlTemplate.TriggersTrigger PropertyContent Value{x:Null}Setter PropertyVisibility ValueCollapsed TargetNameContentPresenterMain//TriggerTrigger Propertyhc:IconElement.Geometry Value{x:Null}Setter PropertyVisibility ValueCollapsed TargetNamePathMain/Setter PropertyMargin Value0 TargetNameContentPresenterMain//Trigger/ControlTemplate.Triggers/ControlTemplate/Setter.Value/Setter/Style控件模板原型 我们想写一个控件模板如果不是很熟练我们就先把控件模板的原型写出来这样更利于理解。 DockPanel!--这里仿照HandyControl使用Gemotery。IconPacks怎么转Gemotery可以看我的文章--Border DockPanel.DockTopWidth50Height50CornerRadius25BackgroundDeepSkyBluePath Data{wpfEx:MaterialGeometry KindBellRing}HorizontalAlignmentStretchVerticalAlignmentStretchSnapsToDevicePixelsTrueStretchUniformWidth25Height25FillWhite //BorderTextBlock TextTIM登录HorizontalAlignmentCenter //DockPanel控件模板 Style x:KeyUserSelectionTargetTypeRadioButtonBasedOn{StaticResource {x:Type RadioButton}}Setter PropertyTemplateSetter.Value!--先按照之前的样式粘贴一下--ControlTemplate TargetTypeRadioButtonDockPanelBorder DockPanel.DockTopWidth50Height50CornerRadius25BackgroundDeepSkyBluePath Data{wpfEx:MaterialGeometry KindBellRing}HorizontalAlignmentStretchVerticalAlignmentStretchSnapsToDevicePixelsTrueStretchUniformWidth25Height25FillWhite //BorderContentPresenter x:NameContentPresenterMainRecognizesAccessKeyTrueVerticalAlignmentCenterMargin6,0,0,0SnapsToDevicePixels{TemplateBinding SnapsToDevicePixels} //DockPanel/ControlTemplate/Setter.Value/Setter /Style 然后里面能绑定的就绑定。也是照着HandyControl改的。注意这里的Banding用的是TemplateBinding 修改好的效果 !--一个简单的FontSize修改-- Style x:KeyUserSelectionTargetTypeRadioButtonBasedOn{StaticResource {x:Type RadioButton}}Setter PropertyTemplateSetter.Value!--先按照之前的样式粘贴一下--ControlTemplate TargetTypeRadioButtonDockPanelBorder DockPanel.DockTopWidth{TemplateBinding hc:IconElement.Width}Height{TemplateBinding hc:IconElement.Height}CornerRadius25Background{TemplateBinding Foreground}Path Data{TemplateBinding hc:IconElement.Geometry}HorizontalAlignmentStretchVerticalAlignmentStretchSnapsToDevicePixelsTrueStretchUniformWidth25Height25Fill{TemplateBinding Background} //BorderContentPresenter x:NameContentPresenterMainRecognizesAccessKeyTrueVerticalAlignmentCenterMargin6,0,0,0SnapsToDevicePixels{TemplateBinding SnapsToDevicePixels} //DockPanel/ControlTemplate/Setter.Value/Setter /Style 简单使用 RadioButton ContentTIM登录GroupNameUserSelectStyle{StaticResource UserSelection}ForegroundDeepSkyBlueBackgroundWhitehc:IconElement.Geometry{wpfEx:MaterialGeometry KindAbTesting} / 控件模板触发器 完整样式 ResourceDictionary xmlnshttp://schemas.microsoft.com/winfx/2006/xaml/presentationxmlns:wpfExclr-namespace:BluetoothWPF.WpfExtensionsxmlns:hchttps://handyorg.github.io/handycontrolxmlns:xhttp://schemas.microsoft.com/winfx/2006/xaml!--一个简单的FontSize修改--Style x:KeyUserSelectionTargetTypeRadioButtonBasedOn{StaticResource {x:Type RadioButton}}Setter PropertyForegroundValueGray /Setter PropertyTemplateSetter.Value!--先按照之前的样式粘贴一下--ControlTemplate TargetTypeRadioButtonDockPanelBorder DockPanel.DockTopWidth70Height70CornerRadius35x:NameBackgroundPath Data{TemplateBinding hc:IconElement.Geometry}x:NameIconHorizontalAlignmentStretchVerticalAlignmentStretchSnapsToDevicePixelsTrueStretchUniformWidth35Height35FillGray //BorderContentPresenter x:NameContentPresenterMainRecognizesAccessKeyTrueVerticalAlignmentCenterHorizontalAlignmentCenterMargin6,0,0,0SnapsToDevicePixels{TemplateBinding SnapsToDevicePixels} //DockPanelControlTemplate.TriggersTrigger PropertyIsMouseOverValueTrueSetter TargetNameBackgroundPropertyBackgroundValue{Binding RelativeSource{RelativeSource TemplatedParent},PathBackground} /Setter TargetNameIconPropertyFillValueWhite //TriggerTrigger PropertyIsFocusedValueTrueSetter TargetNameBackgroundPropertyBackgroundValue{Binding RelativeSource{RelativeSource TemplatedParent},PathBackground} /Setter TargetNameIconPropertyFillValueWhite //Trigger/ControlTemplate.Triggers/ControlTemplate/Setter.Value/Setter/StyleStyle TargetTypeRadioButtonx:KeyUserSelectioin_AdminBasedOn{StaticResource UserSelection}Setter PropertyHorizontalAlignmentValueRight /Setter PropertyMarginValue0 0 10 0 /Setter PropertyBackgroundValueDeepSkyBlue /Setter Propertyhc:IconElement.GeometryValue{wpfEx:MaterialGeometry KindAccountLock} /Setter PropertyContentValue管理员登录 //StyleStyle TargetTypeRadioButtonx:KeyUserSelectioin_UserBasedOn{StaticResource UserSelection}Setter PropertyHorizontalAlignmentValueLeft /Setter PropertyMarginValue10 0 0 0 /Setter PropertyBackgroundValueGreen /Setter Propertyhc:IconElement.GeometryValue{wpfEx:MaterialGeometry KindAccount} /Setter PropertyContentValue用户 //Style /ResourceDictionary简单使用 RadioButton Style{StaticResource UserSelectioin_Admin} / RadioButton Style{StaticResource UserSelectioin_User} /结论 HandyControl的源码看了真的是打开眼界但是WPF的Xaml有一个无法在内部简单计算的问题。比如我想WitdhHeight CornerRadius*2。我可能就要写个触发器了。我后面回去测试一下有没有方法可以在Xaml里面简单计算的。
http://www.hkea.cn/news/14280003/

相关文章:

  • 网站 文件服务器如何在电子商务化平台上做企业网站推广
  • 海南省旅游专业网站发展电子商务缺乏强大的专业产业资源做后盾网站建设子栏目怎么弄
  • 如何转移网站深圳租赁住房和建设局网站
  • 网站优化策略分析论文东莞房价下跌最惨一览表
  • 珠海网站建设 金碟空间设计和室内设计的区别
  • 饰品电子商务网站的建设wordpress录播
  • 网站开发常用问题东莞城乡建设网站
  • p图做网站兼职网页链接视频怎么下载到本地
  • 无锡网站建设报价明细表做细分行业信息网站
  • 网站添加漂浮二维码怎么做网站推广员是什么
  • 目前做网站wordpress建站
  • 做企业网站要怎么设计方案江西省建设工程协会网站查询
  • html网站尺寸免费个人域名邮箱
  • 手机网站建设软件有哪些内容低价网站建设顺德
  • 网站开发中网页之间的链接形式网站的产品图片怎样做清晰
  • 太原论坛网站开发公司制作一个景点的网站
  • 网站经营网络备案信息管理系统wordpress 可视化编辑
  • 营销网站找什么公司做黄骅港防疫办电话
  • 龙岗网站多少钱查询网址域名
  • 网站建设优選宙斯站长宁波建网站推荐
  • 南宁网站提升排名成都现在可以正常出入吗
  • 苏州市住房城乡建设局网站网站建设与管理的内容
  • 房产网站建设整体架构印江建设局网站
  • 做公司网站的必要性拖拉建网站
  • 单页网站cpa虚拟主机襄阳旅游景点网站建设
  • 怎么在word里做网站微信代运营加盟
  • 网站源码如何使用电子商务官方网站建设
  • 佛山新网站建设价格WordPress标签转拼音代码
  • 网站设计制作厂家有哪些广元市建设局官方网站
  • 诗敏家具网站是谁做的门户网站做的比较好的公司