wpf实现简易画板功能

本文通过WPF技术展示了如何实现一个简单的画板功能,包括viewmodel的使用、数据绑定中的数据校验以及windows1.xaml.cs和windows1.xaml的具体实现。
摘要由CSDN通过智能技术生成

效果图如下:
在这里插入图片描述
viewmodel


using PropertyChanged;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using System.Collections.ObjectModel;
using System.Windows.Controls;

namespace _1_5GraphicsWpf.ViewModel
{
    //颜色选择列表 数据模板
    [AddINotifyPropertyChangedInterface]
    
    public class VMColor : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;
        private int id;

        public int ID
        {
            get;
            set;
        }

        private string pcolor;

        public string PColor
        {
            get;
            set;
        }

    }
    //样式选择列表 数据模板
    [AddINotifyPropertyChangedInterface]
    public class VMStyle : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;

        private int id;

        public int ID
        {
            get ;
            set;
        }


        private string pstyle;

        public string PStyle
        {
            get;
            set;
        }

    }
    //一些全局变量设置 数据模板
    [AddINotifyPropertyChangedInterface]
    public class Global_Window1 : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;

        //int Combo_ColorIndex;
        //int Combo_StyleIndex;
        //private int combo_ColorIndex;

        public int Combo_ColorIndex
        {
            get ;
            set;
        }
        //private int combo_StyleIndex;

        public int Combo_StyleIndex
        {
            get ;
            set;
        }

        //private double thickness;

        public double Thickness
        {
            get ;
            set;
        }
        //private Collection<ValidationRule> datavalidationRules;
        //public Collection<ValidationRule> dataValidationRules { get; set; }
        //private Collection<ValidationRule> rangevalidationRules;
        //public Collection<ValidationRule> rangeValidationRules { get; set; }
    }
}

数据绑定中的数据校验


using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Controls;

namespace _1_5GraphicsWpf.ControlValidationRule
{

    public class RangeValidationRule : ValidationRule
    {

        private int min=0 ;

        public int Min
        {
            get { return min ; }
            set { min= value; }
        }
        private int max = 100;

        public int Max 
        {
            get { return max; }
            set { max  = value; }
        }



        public RangeValidationRule() : base() { }
        //public RangeValidationRule(int a ,int b ):base()
        //{
        //    min = a;
        //    max = b;
        //}
        public override ValidationResult Validate(object value, CultureInfo cultureInfo)
        {
            double d = 0;
            if (double.TryParse(value.ToString(),out d))
            {
                if (d>=min&&d<=max)
                {
                   
WPF(Windows Presentation Foundation)是一种用于创建Windows应用程序的用户界面框架,它提供了丰富的图形、动画和多媒体功能,非常适合实现图片浏览器功能。 首先,我们可以使用WPF的布局控件,如Grid、StackPanel、WrapPanel等来创建图片浏览器的布局。可以将图片以网格状、列表状或者平铺方式显示出来,通过设置布局控件的属性来达到不同显示效果。 然后,我们可以使用WPF的Image控件来显示图片。通过绑定图片路径,将图片加载到Image控件上,并设置合适的布局和尺寸,使得图片在浏览器中呈现出较好的显示效果。同时可以利用WPF的特性,如绑定、命令等来实现图片的放大、缩小、旋转、拖拽等交互操作。 另外,为了实现图片浏览器的导航功能,我们可以使用WPF的按钮、菜单和导航控件,如ToolBar、Menu、TabControl等来增加上一页、下一页、首页、尾页、放大、缩小等功能按钮,并通过事件绑定和命令来实现相关操作。 此外,WPF还提供了强大的动画和过渡效果功能,我们可以利用这些功能,为图片浏览器增加一些华丽的过渡效果,如渐变、旋转、淡入淡出等,提升用户体验。 最后,在WPF中,我们可以采用MVVM(Model-View-ViewModel)架构来实现图片浏览器的功能。通过创建ViewModel类,将图片数据和操作逻辑与界面分离,实现数据绑定和命令绑定,提高代码的可维护性和重用性。 总的来说,WPF提供了许多强大的功能和灵活的设计模式来实现图片浏览器功能,开发者可以根据自己的需求和技术实力,选择最适合的方案来完成项目。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值