摘要: 假设有一个异步方法taskDo,返回一个Task类型。当我们用任务执行该异步方法,且需等待该方法执行完成时,应该如何创建任务呢??? static void WriteLine(object line) { Console.WriteLine(DateTime.Now.ToString("mm:ss 阅读全文
posted @ 2022-04-12 22:45 Bridgebug 阅读(563) 评论(0) 推荐(0)
摘要: 位于 System.Threading.Tasks.TaskContinuationOptions Thread是基于操作系统级别的线程,而ThreadPool和Task不会创建自己的操作系统线程,二者是由任务调度器(TaskScheduler)执行,默认的调度程序仅仅在ThreadPool上运行。 阅读全文
posted @ 2022-04-12 22:45 Bridgebug 阅读(706) 评论(0) 推荐(0)
摘要: 1.IValueConverter 接口 提供将自定义逻辑应用于绑定的方法。 using System; using System.Globalization; using System.IO; using System.Windows.Data; using System.Windows.Medi 阅读全文
posted @ 2022-04-12 22:45 Bridgebug 阅读(106) 评论(0) 推荐(0)
摘要: TreeView TreeView中的Item有两种选择,要么是TreeViewItem,要么不是TreeViewItem。只有在TreeViewItem中才能继续添加元素,以此往复。 TreeViewItem中IsExpanded表示是否展开,IsSelected表示是否选中。 通过下述方法可以将 阅读全文
posted @ 2022-04-12 22:45 Bridgebug 阅读(450) 评论(0) 推荐(0)
摘要: 在WPF中可以实现椭圆,利用Ellipse或者Border。但是要实现圆,就必须设定固定的长宽,然后根据长宽设置对应的倒角才可以实现圆。如果这样设计,就固定了长宽,不能根据界面自适应调整。所以我们可以根据绑定和转换器将实际的长宽转换为对应的倒角。 using System; using System 阅读全文
posted @ 2022-04-12 22:45 Bridgebug 阅读(252) 评论(0) 推荐(0)
摘要: 通过使用变换(transform),许多绘图认为将更趋简单。变换是通过不加通告地切换形状或元素使用的坐标系统来改变形状或元素绘制方式的对象。 变化形状有两种方式:RenderTransform和LayoutTransform。 这里主要讲诉这两种方式的区别: 1.不添加变换 在StackPanel中 阅读全文
posted @ 2022-04-12 22:45 Bridgebug 阅读(148) 评论(0) 推荐(0)
摘要: 我们知道可以用LinearGradientBrush实现颜色的渐变,如下图,从Red渐变到Blue: <Border Grid.Row="1" BorderBrush="Black" BorderThickness="5" CornerRadius="20" > <Border.Background 阅读全文
posted @ 2022-04-12 22:45 Bridgebug 阅读(84) 评论(0) 推荐(0)
摘要: 附加属性的值可以被子元素继承 我们一般定义一个附加属性会如下一样定义: using System.Windows; using System.Windows.Controls; public class Test : Button { public static int GetCount(Depen 阅读全文
posted @ 2022-04-12 22:45 Bridgebug 阅读(370) 评论(0) 推荐(0)
摘要: 资源初步认识https://blog.csdn.net/breakbridge/article/details/116271634 一、资源键 大多少时候我们定义一个资源都是将其Key设置为一个字符串,但有时候我们也可以将Key设置为 ComponentResourceKey 对象。 <Applic 阅读全文
posted @ 2022-04-12 22:45 Bridgebug 阅读(546) 评论(0) 推荐(1)
摘要: 先看两张图,一个实现自己的效果,一个使用默认的效果: GitHub地址 https://github.com/Bridge2018/WPF-DataGridhttps://github.com/Bridge2018/WPF-DataGrid 不多说,上代码。。。 1.转换器 因为里面有个DateTi 阅读全文
posted @ 2022-04-12 22:45 Bridgebug 阅读(581) 评论(0) 推荐(0)
摘要: using System; using System.Collections.Generic; using System.ComponentModel; using System.IO; using System.Reflection; using System.Text; using System 阅读全文
posted @ 2022-04-12 22:45 Bridgebug 阅读(1350) 评论(0) 推荐(0)
摘要: 1.MathConverter 有时候我们想在XAML中对绑定的数据进行数值运算转换,就需要这个转换器了。 这个NuGet包可以使字符串进行数据运算。 using System; using System.Globalization; using System.Windows.Data; using 阅读全文
posted @ 2022-04-12 22:45 Bridgebug 阅读(372) 评论(0) 推荐(0)
摘要: ScrollBar控件出奇复杂。它实际上是一个由更小部分组成的集合。 滚动条的背景由Track类表示(实际上是一个具有阴影并且被拉伸占满整个滚动条长度的矩形)。滚动条的末尾处是按钮,通过这些按钮可以向上或向下(或向左或向右)滚动一个步长。这些按钮是RepeatButton类的实例,该类继承自Butt 阅读全文
posted @ 2022-04-12 22:45 Bridgebug 阅读(734) 评论(0) 推荐(0)
摘要: 样式提供了重用一组属性设置的实用方法。它们为帮助构建一致的、组织良好的界面迈出了重要的一步 但是它们还有许多限制。 问题是在典型的应用程序中,属性设置仅是用户界面基础结构的一小部分。甚至最基本的程序通常也需要大量的用户界面代码,这些代码与应用程序的功能无关。许多这类代码都是通用的,这意味着在创建的每 阅读全文
posted @ 2022-04-12 22:45 Bridgebug 阅读(111) 评论(0) 推荐(0)
摘要: using System.Drawing; using System.Drawing.Drawing2D; public Image CreateTextImage(string text, Font font, Color backgroundColor, Color foreColor, int 阅读全文
posted @ 2022-04-12 22:45 Bridgebug 阅读(178) 评论(0) 推荐(0)
摘要: 当使用BinaryFormatter进行序列化时实现深复制时,发现如果对象带有公共事件时,会引起报错。 using System.IO; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters 阅读全文
posted @ 2022-04-12 22:45 Bridgebug 阅读(74) 评论(0) 推荐(0)
摘要: 一元运算符 ! 取非 set /a a=1 set /a b=!a rem b=0 0取非为1,其他值取非为0 ~ 取反 set /a a=1 set /a b=~a rem b=-2 - 取负 set /a a=1 set /a b=-a rem b=-1 算数运算符 + 求和 set /a a= 阅读全文
posted @ 2022-04-12 22:45 Bridgebug 阅读(160) 评论(0) 推荐(0)
摘要: 当我们多线程执行同一个方法时,如果没有公共使用数据时,没啥问题?但是需要访问同一个对象时,如果没有锁的话,会出现数据丢失的可能! 例如下面的例子:没有锁时,集合长度可能不满足设定值 using System; using System.Collections.Generic; using Syste 阅读全文
posted @ 2022-04-12 22:45 Bridgebug 阅读(104) 评论(0) 推荐(0)
摘要: 时间间隔是以秒为单位的浮点小数。每个时间戳都以自从1970 年 1 月 1 日午夜(历元)经过了多长时间来表示。 import time ticks = time.time() print (f"当前时间戳为:{ticks}秒") # 当前时间戳为: 1649243762.6342976秒 时间戳单 阅读全文
posted @ 2022-04-12 22:45 Bridgebug 阅读(126) 评论(0) 推荐(0)
摘要: 事件相当于是对委托的封装,用法是一样的。 例如:有委托 Action act 1.同步触发 同步触发有两种: 直接和方法一样调用:act();调用委托的Invoke方法:act.Invoke(); PS:如果委托订阅了多个方法,是根据订阅的顺序依次触发。 2.异步触发 异步触发是调用委托的Begin 阅读全文
posted @ 2022-04-12 22:45 Bridgebug 阅读(130) 评论(0) 推荐(0)
摘要: 1.函数修饰符(@) @与其说是修饰不如说其是引用 def use(f): def test(): print('this is use test') f() return test @use def usetest(): print('Hello') usetest() # 输出: # this 阅读全文
posted @ 2022-04-12 22:45 Bridgebug 阅读(108) 评论(0) 推荐(0)
摘要: 常规操作 常规连接sqlite字符串为 data source=db.db;version=3; 用上述字符串连接sqlite,然后用 System.Data.SQLite 访问数据库时发现有下述几个问题: 往表中插入一条数据时大约耗时100ms(无论表中数据是否很多),这在插入大量数据时会等待很长 阅读全文
posted @ 2022-04-12 22:45 Bridgebug 阅读(259) 评论(0) 推荐(0)
摘要: 问题:未能加载文件或程序集“XXX”或它的某一个依赖项 通过C#创建了一个WebService,在解决方案里运行是没有问题,但是在用iis发布到网站后运行就提示这个报错? 解决: 由于这个service调用了好几个类库,通过检查发现该报错的程序集是x86的,改成any cpu之后就可以了。 阅读全文
posted @ 2022-04-12 22:45 Bridgebug 阅读(101) 评论(0) 推荐(0)
摘要: 一、六大原则 1. 单一职责原则(Single Responsibility Principle) 就一个类而言,应该仅有一个引起它变化的原因。 2. 开放封闭原则(Open Close Principle) 对于软件实体(类、模块、函数等待),扩展是开放的,修改是封闭的。 3. 依赖倒置原则(De 阅读全文
posted @ 2022-04-12 22:45 Bridgebug 阅读(51) 评论(0) 推荐(0)
摘要: 要避免同步问题,最好不要在线程之间共享数据。当然,这并不总是可行的。如果需要共享数据,就必须使用同步技术。如果不注意这些问题,就很难在应用程序中找到问题的原因,因为线程问题是不定期发生的。 1. lock C#为多个线程的同步提供了自己的关键字:lock语句。lock 语句获取给定对象的互斥 loc 阅读全文
posted @ 2022-04-12 22:45 Bridgebug 阅读(87) 评论(0) 推荐(0)