首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

WPF 加载诡异的字体无法布局

如果在系统里面存在诡异的字体,同时自己的 WPF 中有一个控件尝试使用这个字体放在界面中,那么将会在界面布局过程炸了,整个控件或者整个界面布局都无法继续 本文本来是由吕水大大发布的,但是他没空写,于是我就成为了写博客的工具人...有一个用户报告了软件在他的电脑上打不开列出本机字体列表,于是吕水大大就去远程他的设备,在用户的设备上找到了一个诡异的字体,加载这个字体的时候,将会在 MS.Internal.Text.TextInterface.Font.CreateFontFace...而且有趣的是 Win10 的 UWP 版的设置里面是找不到这个字体的,原因是 UWP 版本也会在读取此字体的时候炸了 复现的步骤如下,先从 https://github.com/walterlv/Walterlv.Demo.WpfBadFontCrash...下载代码,在代码仓库里面可以找到 不给糖就捣蛋的万圣节.TTF 这个字体,值得一说的是,诡异的字体有很多,这个字体只是一个例子。...,可以看到的代码如下 - Exception {"指示输入文件 (例如字体文件) 中的错误。

1.3K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    从 N 次失败中找到进入大厂的一些小招

    大家好,我是来自蚂蚁金服花呗 & 借呗团队的前端工程师,我的花名是井葵。我这次分享的主题是《从 N 次失败中找到进入大厂的一些小招》。 一、自我介绍 ?...我从刚刚接触前端的时候,就有一个很确定的目标,那就是三年之内一定要进入阿里。刚开始定下这个目标的时候,也没有什么特殊的理由,纯粹因为觉得阿里是一家大型的互联网公司。...在很多次的面试失败中,无论是笔试、现场还是电话,我每次都有总结,在总结的时候我发现,我回答问题的时候不成体系,而且做不到触类旁通,无法让面试官感受到我对问题和知识点有深度的思考。 ?...其中 20% 的知识和文章,是从我以前的零散笔记里迁移过来的。所以我始终相信千里之行始于足下。...第三个就是奇怪问题的集合,一些 JavaScript 的糟粕、CSS 布局问题、React 或 Vue 的 Issue,我都会收集到一个大类里面。 第四个就是社区优秀问答的收集。

    98320

    LeetCode 85 | 如何从矩阵当中找到数字围成的最大矩形的面积?

    题意 给定一个只包含0和1的数字矩阵,要求在这个矩阵当中找到一个由1组成的最大面积的矩形,返回这个面积。...题解 还是老规矩,我们从最简单的方法入手,一点点推导出最佳的思路。 暴力 首先最简单的当然是暴力,这题让我们寻找一个矩形,直接寻找矩形是有点麻烦的。...","1"], ["1","1","1","1","1"], ["1","0","0","1","0"] 比如说上面这个矩阵就可以转变为[4, 0, 0, 3, 0],其实就是我们一列一列看,从最低处往上连续的...所以我们需要遍历作为底层的行,然后用这种方法寻找最大面积,全局当中找到的最大面积就是答案。...除了上面提到的之外,还有其他的一些细节,比如数组的创建的长度,还有矩形面积的计算公式等等。很多时候算法之所以难以实现,也正是因为需要考虑的细节很多,整体的逻辑不是非常清楚,需要我们进行大量的思考。

    1.4K20

    从大量的IP访问记录中找到访问次数最多的IP

    1.内存不受限 一个IP有32bit(4Byte),1GB=10亿,那么在4GB内存的情况下,可以存10亿个IP。...2.内存受限 假设我们有1TB的数据,但内存只有4GB,不能将数据全部读入内存做运算。 从输入流中读取1TB的数据,将IP地址按模1000运算,相同的模值IP写到同一个文件中。...这样就会产生1000个小文件,每个文件大约1GB,且保证了相同的IP一定在同一个文件中。...对这1000个文件中的每个文件使用HashMap找到该文件中的最多IP,然后1000个局部极值比较,再求出最值,有点像小组赛晋级然后总决赛。...【Reference】 从1亿个ip中找出访问次数最多的IP http://blog.csdn.net/linmiansheng/article/details/19290879 发布者:全栈程序员栈长

    97020

    如何从40亿个整数中找到不存在的一个

    前言 给定一个最多包含40亿个随机排列的32位的顺序整数的顺序文件,找出一个不在文件中的32位整数。(在文件中至少确实一个这样的数-为什么?)。在具有足够内存的情况下,如何解决该问题?...那如果仅借助几个“临时”文件,使用几百字节的内存的情况下该如何处理呢? 能否使用二分搜索呢?这40亿个整数是随机排列的,因此普通的二分搜索不能找到那个不存在的数。但是我们可以基于二分搜索的思想。...从最高比特位开始: 将最高比特位为0的放在一堆,为1的放在另外一堆 如果一样多,则随意选择一堆,例如选0,则该位为0 如果不一样多,选择少的一堆继续,如1更少,则该位为1 这里需要做一些解释: 由于...如果在这40亿个整数中,某比特位为1和0的个数是相同的,则说明两边都有不存在的数。因此选择任意一堆即可。 如果比特位1的整数比0的整数多,则说明,比特位为0的一堆数中,肯定缺少了一些数。...总结 本文从一个特别的角度用最常见的二分搜索解决了该问题,最多拆分32次,便可从中找到不存在的整数。你有什么更好的思路或优化点,欢迎留言。

    1.5K20

    我是如何从3亿IP中找到CISCO后门路由器的

    接到某单位通知让查找中国具有SYNful Knock后门的CISCO路由器,按照曼迪安特分析的报告称中国已经发现3台具有SYNful Knock后门的路由器,如何快速从全国3亿IP地址中快速查找出3个IP...一、获取IP地址 为保证中国IP的全面性,从apnic重新获取亚洲区域所分配到的IP,过滤出CN的IP,结果如下。...检测出5184575个开放80端口的IP地址。...四、POC制作思路 互联网搜索发现还没有此后门的POC(现在CISCO已经发布自己的POC,后期我的POC也参考CISCO的POC做了适当调整),没办法自给自足仔细研读了曼迪安特的报告,经过多次改版最终...#"号 执行show platform查看文件被修改情况,找到曼迪安特说的RW标致 八、结论 成功找到4个中国具有SYNful Knock后门的CISCO路由器。

    1.7K60

    yoga 初探

    yoga模块中libs目录下主要有两个jar包,jsr305.jar和soloader-0.1.0.jar,可以在方法一的第3点中所说的buck-out目录中找到。.../p/d4289b16a133 中所说的生成的一些so库,但是通过方法一无法成功生成这些so库,只好借用一下别人生成的。...image5.getLayoutY() + row2.getLayoutY()); layout.addView(imageView5); 执行结果如下,代码可以从https://github.com/...对现有代码的入侵特别大,需要将所有的xml的布局替换成yoga的布局模式。 由于属性的局限性,部分xml可以实现的布局使用yoga无法实现。...总的来说yoga的概念虽好,但是还不太成熟,对于android这块,还没有进行相应的适配,无法和android自带的控件结合起来,导致实现麻烦且很多android布局无法实现。

    8.1K20

    如何从有序数组中找到和为指定值的两个元素下标

    如何从有序数组中找到和为指定值的两个元素下标?...2, 7, 17, 26, 27, 31, 41, 42, 55, 80} target=72.求得值为17和55,对应下标为:2,8 思考下,只要将元素自己与后面的所有元素相加计算一下,就能找到对应的两个值...换个思路,在这个有序数组中,可以使用2个指针分别代表数组两侧的两个目标元素.从目标数组的两侧,向中间移动;当两个指针指向的元素计算值,比预定值target小了,那左侧指针右移下,重新计算;当计算值大于target...时,右侧指针左移下,直到两个元素和与target相等.这种方法叫做搜索空间缩减,这也是这道题的关注点.这种方法的时间复杂度只有O(2*n)(非严谨说法),是非常高效的一种方法了....一起看下指针如何移动的, 1. 2+80>72,j左移; 2. 2+55<72,i右移 3. 7+55<72,i右移 4. 17+55=72,计算结束 可见,两个指针只移动了3次,就计算出结果

    2.3K20

    Android旁门左道之动态替换系统View类

    二、寻求解决思路 这个问题出现在一个编辑图片的页面,页面中含有很多的ImageView(大约20个)实例,单单靠调用栈我们无法定位具体哪个ImageView出现了问题。...借到问题手机,连接电脑配合源码打断点(ImageView,BitmapDrawable,Canvas) 思路1无法快速解决问题;思路2恕我实在借不到那个型号的手机,另外我们IDE中的Android源码与手机中行数不一定匹配...()方法实际上等于我们需要替换ImageView类,把所有的xml布局文件中的ImageView换成我们新定义的CatchExceptionImageView?...最后我在LayoutInflater类中找到了方法。 ?...,帮我复现了问题并抓了日志,最后找到了Crash的ImageView信息,通过view id便可以找到了出错的点。

    1.8K70

    如何只用2GB内存从204080亿个整数中找到出现次数最多的数

    可是,如果还是采用 bitmap 算法的话,好像无法统计一个数出现的次数,只能判断一个数是否存在),我可以采用哈希表来统计,把这个数作为 key,把这个数出现的次数作为 value,之后我再遍历哈希表哪个数出现最多的次数最多就可以了...小秋:key 和 value 都是 int 型整数,一个 int 型占用 4B 的内存,所以哈希表的一条记录需要占用 8B,最坏的情况下,这 20 亿个数都是不同的数,大概会占用 16GB 的内存。...面试官:你的分析是对的,然而我给你的只有 2GB 内存。 小秋:(感觉这道题有点相似,不过不知为啥,没啥思路,这下凉凉),目前没有更好的方法。...小秋:刚才你说,我的那个方法,最多只能记录大概 2 亿多条的不同记录,那么我可以把这 20 亿个数映射到不同的文件中去,例如,数值在 0 至 2亿之间的存放在文件1中,数值在2亿至4亿之间的存放在文件2...面试官:那如果我给的这 40 亿个数中数值都是一样的,那么你的哈希表中,某个 key 的 value 存放的数值就会是 40 亿,然而 int 的最大数值是 21 亿左右,那么就会出现溢出,你该怎么办?

    69220

    如何只用2GB内存从204080亿个整数中找到出现次数最多的数

    可是,如果还是采用 bitmap 算法的话,好像无法统计一个数出现的次数,只能判断一个数是否存在),我可以采用哈希表来统计,把这个数作为 key,把这个数出现的次数作为 value,之后我再遍历哈希表哪个数出现最多的次数最多就可以了...小秋:key 和 value 都是 int 型整数,一个 int 型占用 4B 的内存,所以哈希表的一条记录需要占用 8B,最坏的情况下,这 20 亿个数都是不同的数,大概会占用 16GB 的内存。...面试官:你的分析是对的,然而我给你的只有 2GB 内存。 小秋:(感觉这道题有点相似,不过不知为啥,没啥思路,这下凉凉),目前没有更好的方法。...小秋:刚才你说,我的那个方法,最多只能记录大概 2 亿多条的不同记录,那么我可以把这 20 亿个数映射到不同的文件中去,例如,数值在 0 至 2亿之间的存放在文件1中,数值在2亿至4亿之间的存放在文件2...面试官:那如果我给的这 40 亿个数中数值都是一样的,那么你的哈希表中,某个 key 的 value 存放的数值就会是 40 亿,然而 int 的最大数值是 21 亿左右,那么就会出现溢出,你该怎么办?

    1.9K30

    从“小而美”到“大而肥”,11年膨胀575倍的微信经历了什么?

    前 言 / 2022.8.2 “小而美”的微信安装包一去不复返,历经11年,其膨胀了将近575倍,占用内存动辄几十 GB ,变得越来越臃肿,“小而美”也成为了一种调侃和讽刺。...01 微信安装包11年膨胀575倍 近日,有B站科技区UP主发布视频,通过逆向工程揭秘了安卓微信8.0.24版本的安装包,想看看微信从当初的“小而美”摇身一变“大而肥”,到底经历了什么。...当然,使用过微信的我们都知道,实际上占据的空间绝不止这些,缓存数据才是大头。如今的微信对于不少手机和网友来说,确实有点“不堪重负”。 02 是什么导致了安装包的膨胀?...原因之一 从表面上看,一方面是跟微信新增越来越多的非必要功能和不合理的文件存储机制有关,另一方面,也是由于整个互联网生态的改变。...对于当前的微信来说,能否在提供更多服务的同时,让用户不为微信所带来的庞大身躯所困扰,才是需要解决的问题。

    55430

    解决SVN无法从原始内容仓库中安装的问题

    在使用SVN(Subversion)进行版本控制时,有时会遇到无法从原始内容仓库中安装的问题。这种问题通常会导致无法拉取分支或更新代码,可能会给开发过程带来不便。...本文将介绍一种解决这种问题的方法,即清空本地SQLite数据库中的工作队列表(WORK_QUEUE),以恢复SVN的正常功能。...根据一些网友的提示,可以尝试清空本地SQLite数据库的WORK_QUEUE表数据来解决这个问题。...解决方法以下是解决这个问题的步骤:定位本地SVN工作副本在遇到问题的项目目录中,找到.svn隐藏目录,该目录存储了SVN的元数据信息。通常情况下,这个目录位于项目根目录下。...使用SQLite数据库工具打开wc.db文件在.svn目录中找到名为wc.db的SQLite数据库文件。可以使用SQLite数据库管理工具,如Navicat等,打开这个文件。

    65810

    Android性能优化方案

    前言 Android性能优化的方案比较多,在开发过程中,主要考虑从以下几个方面优化 1.布局优化 2.绘制优化 3.内存泄漏优化 4.响应速度优化 5.Listview优化 6.Bitmap优化 7....主要有以下几种情况: 1.不要再Acticity中声明静态变量,这样会是的Activity无法完全销毁释放 2.单例设计模式一起的内存泄漏,单例设计模式的静态特性会使他的生命周期和应用程序的生命周期一样长...,这就说明了如果一个对象不在使用了,而这时单例对象还在持有该对象的引用,这时GC就会无法回收该对象,造成了内存泄露的情况。...,handler还在持有Activity的引用,这个时候就会导致无法被GC回收,造成了内存泄漏。...这里假设通过ImageView来显示图片,很多时候ImageView并没有图片的原始尺寸那么大,这个时候把整个图片加载进来后再设给imageView,这显然是没必要的,因为ImageView并没有办法显示原始的图片

    73040

    Android应用界面开发——Widget(实现液晶时钟)

    一般,开发桌面控件只需定义一个APPWidgetProvider的子类,并重写它的onUpdate()方法即可,重写该方法的步骤: 创建一个RemoteViews对象,创建该对象时可以指定加载指定的界面布局文件...如果需要改变上一步所加载的界面布局文件的内容,则可通过RemoteViews对象进行修改。 创建一个ComponentName对象。 调用APPWidgetManager更新桌面控件。...-- minWidth:桌面控件的最小宽度 minHeight:桌面控件的最小高度 updatePeriodMillis:更新频率 initialLayout:初始时显示的布局...为了让桌面控件实时显示当前时间,需要每隔一秒更新一次界面上的六个ImageView,让它们显示当前小时、分钟、秒钟的数字即可。...ImageView所显示的液晶数字图片,这样就可以显示当前时间了。

    2.4K70
    领券