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

商城网站建设wordpress导入网页

商城网站建设,wordpress导入网页,wordpress layer 主题,哪个软件可以自动排名开发环境 VS2022 .NET 8.0 MVVM Toolkit 8.2.2 需求 开发中需要实现按照成绩动态指名#xff0c;以展示当前的竞赛成绩的一个实时情况及变化。 即如下效果#xff1a; 需求分析 按照接收到的信息#xff0c;就是要将获取到的集合排序#xff0c;并且要将排序前后的变…开发环境 VS2022 .NET 8.0 MVVM Toolkit 8.2.2 需求 开发中需要实现按照成绩动态指名以展示当前的竞赛成绩的一个实时情况及变化。 即如下效果 需求分析 按照接收到的信息就是要将获取到的集合排序并且要将排序前后的变化要能在UI上动态的表示出来以直观的显示排名的变化效果。 UI上的排名上升与下降的实现本质就是当前显示控件位置的变化最方便的方式肯定是在Canvas上设置它的Top位置了然后再有一个从原位置到新位置的过度动画那么就好了。 按上述思路首先想到的就是自定义控件完全自定义控件有点麻烦最后决定使用常用的集合控件 ItemsControl其子控件也行但仅用ListView尝试过来进行实现。 代码实现 VM及Model internal partial class MainWindowViewModel : ObservableRecipient{[ObservableProperty]ObservableCollectionPerson persons [new Person() { Id 1, Name 张三, Age 18, Gender 男, Address 北京, Grade 一年级 ,Y50,OldY50,Score40},new Person() { Id 2, Name 李四, Age 19, Gender 女, Address 上海, Grade 二年级,Y100,OldY100,Score60},new Person() { Id 3, Name 王五, Age 20, Gender 男, Address 广州, Grade 三年级 ,Y150,OldY150,Score90},];Timer timer;public MainWindowViewModel(){timer new Timer(OnTimer, null, 0,1000);}private void OnTimer(object? state){Dispatcher.CurrentDispatcher.Invoke(() {Random random new();var index random.Next(0, 3);Persons[index].Score random.Next(0, 100);var sorts Persons.OrderBy(p p.Score);int i 0;foreach (var item in sorts){item.Id i;item.Y i * 50;}});}}public partial class Person : ObservableObject{[ObservableProperty]private int id;[ObservableProperty]private string name;[ObservableProperty]private int age;[ObservableProperty]private string gender;[ObservableProperty]private string address;[ObservableProperty]private string grade;private int y;public int Y{get y;set{if (y ! value){OldY y; //记录旧值SetProperty(ref y, value);}}}[ObservableProperty]private int oldY;[ObservableProperty]private int score;} Xaml中绑定如下注意下述代码中的ZContentPresenter为自定义控件 ItemsControlx:NamemyItemsControlMargin10ItemsSource{Binding Persons}ItemsControl.ItemsPanelItemsPanelTemplateCanvas //ItemsPanelTemplate/ItemsControl.ItemsPanelItemsControl.ItemTemplateDataTemplatecontrol:ZContentPresenterx:NamepresenterContent{Binding}Top{Binding Y}ContentPresenter.ContentTemplateDataTemplateStackPanel OrientationHorizontalTextBox Text{Binding Id} /TextBox Text{Binding Name} /TextBox Text{Binding Age} /TextBox Text{Binding Y} //StackPanel/DataTemplate/ContentPresenter.ContentTemplate/control:ZContentPresenter/DataTemplate/ItemsControl.ItemTemplate/ItemsControl 对于 UI中的ZContentPresenter为自定义控件其代码如下 public class ZContentPresenter : ContentPresenter{public ZContentPresenter(){}public int Top{get { return (int)GetValue(TopProperty); }set { SetValue(TopProperty, value); }}public static readonly DependencyProperty TopProperty DependencyProperty.Register(Top, typeof(int), typeof(ZContentPresenter), new PropertyMetadata(0, TopChanged));private static void TopChanged(DependencyObject d, DependencyPropertyChangedEventArgs e){if (d is ZContentPresenter control){var oldValue (int)e.OldValue;var newValue (int)e.NewValue;var parent(ContentPresenter)control.VisualParent;StartAnimation((double)(oldValue), (double)(newValue), parent);}}private static void StartAnimation(double from, double to, FrameworkElement element){Storyboard storyboard new();DoubleAnimation animation new(){From from,To to,Duration TimeSpan.FromSeconds(0.5),AutoReverse false,RepeatBehavior new RepeatBehavior(1)};Storyboard.SetTarget(animation, element);Storyboard.SetTargetProperty(animation, new PropertyPath(Canvas.TopProperty));//Storyboard.SetTargetProperty(animation, new PropertyPath((Canvas.Top)));storyboard.Children.Add(animation);storyboard.Begin(); /* storyboard.Completed (sender, e) {storyboard.Stop();};*/}} 那为什么不直接在ItemContainerStyle中直接使用样式与Trigger中设置动画来实现呢 这涉及到Trigger不能侦听Y值的实时变化另外还有一个问题就是在Animation中不能绑定From与To值若From或To采用绑定会导致出现报错无法冻结此 Storyboard 时间线树供跨线程使用。 注意事项 1. 自定义控件中的 Storyboard.SetTargetProperty(animation, new PropertyPath((Canvas.Top))); 这种写法与 Storyboard.SetTargetProperty(animation, new PropertyPath(Canvas.TopProperty)); 是等价的并且不能将括号去掉。 2. 另外就是一定要绑定Top属性为你指定的离Canvas顶部的距离本例中以Y值进行绑定 3. 虽然已经将ItemsControl中的DataTemplate的ContentPresneter改用了ZContentPresneter(即使将ContentPresenter.ContentTemplate也改为了ZContentPresneter.ContentTemplate,也没有效果)但若要改写ItemsControl的ItemContainerStyle它的TargetType仍还是只能为ContentPresenter它的默认容器就是ContentPresenter暂未发现如何将默认的容器改为ZContentPresneter。也就是说目前还只能如下设置 ItemsControl.ItemContainerStyleStyle TargetTypeContentPresenterSetter PropertyCanvas.Left Value0 /Setter PropertyCanvas.Top Value{Binding OldY} /Style.TriggersDataTrigger Binding{Binding Y, UpdateSourceTriggerPropertyChanged} Value50DataTrigger.EnterActionsBeginStoryboardStoryboardDoubleAnimationAutoReversefalseRepeatBehavior1Storyboard.TargetProperty(Canvas.Top)From5To20Duration0:0:1 //Storyboard/BeginStoryboard/DataTrigger.EnterActions/DataTrigger/Style.Triggers/Style/ItemsControl.ItemContainerStyle
http://www.hkea.cn/news/14502376/

相关文章:

  • 网站建设论文致谢郑州建设网站推广公司
  • 想要自己做一个网站怎么做怎样向顾客电销网站建设
  • 有哪些网站是做网批女装苏州网站建设案例
  • visual studio 2010 网站开发教程wordpress 主题 语言包
  • 如何修改网站发布时间和wordpress
  • 音乐网站制作课程报告珠宝商城网站模板免费下载
  • 伊川网站建设网站开发郑州
  • 网站设计要点 优帮云北京朝阳区居家办公
  • 毕设如何做网站陕西省建设厅管理中心网站
  • 找公司做网站需要买服务器收费wordpress
  • 网页设计与网站建设在线第二章软件网站开发公司
  • 福州营销型网站建设价格网站建设安全架构
  • 网站着陆页是什么意思个人网站命名 备案
  • 国际物流网站制作模板wordpress版权信息 插件
  • 音乐网站设计素材番禺建设网站公司排名
  • 阿里云上如何用iis做网站教育+wordpress模板
  • 网站建设 归为会计哪一类郑州装修公司排名推荐
  • 岳阳整站优化wordpress目录主题
  • 北京网站seo推广泰安专业网站建设公司
  • 电商网站建设 平台怎么个人做网站
  • 吴江区建设银行招聘网站wordpress 文章页名称
  • 专业郑州企业网站建设在网站做专题
  • 获取网站缩略图淘宝电脑版
  • 郑州官网网站推广优化dw建网站
  • 山东网站建设哪家专业深圳保障性住房统一轮候信息系统
  • 石家庄网站建设布局怎么做一个网页
  • 网站布局选择wordpress do_action 返回值
  • 便利的微网站建设notefolio设计官网
  • 申请网站建设费用的请示wordpress 分类缩略图
  • 工艺品做网站维护一个网站