WPF基础容器与布局
WPF的xaml中进行布局设定时,少不了和布局容器打交道,合理的使用和搭配这些容器,能够让页面美观的同时,可维护性和可拓展性更高
布局容器(面板控件)容器中的控件(子元素)理论上是建议不显式指定尺寸,不使用屏幕坐标设定控件自身的位置
常见容器如下:
控件名称
用途
DockPanel
子级元素依靠在容器边缘,分为 顶部、底部、左侧、右侧,用于实现靠近边缘的工具栏、表单提交按钮等布局,通过在子元素中使用附加属性DockPanel.Dock进行控制,同时需要注意是否需要考虑设定LastChildFill控制容器的最后一个元素是否填充剩余空间,顶部和底部优先级高于左侧和右侧
WrapPanel
将每个子元素水平(默认)或垂直方向定位到另一个子元素的旁边,水平或垂直方向不满足当前元素的宽度或者高度时,元素自动换行或换列
StackPanel
子元素在某一方向(水平/垂直)相互之间有序靠近,子元素控件的高度或宽度决定了子元素的填充范围,操作子元素自身并不会换行或者换列
Grid
自带面板中最复杂的,网格布局风格,通过设定行列数以及Grid.Column、Row以及跨行 ...
技术学习的思考
生活中难免因事因人牵动思绪,最近这段时间,又开始自我反思,一方面是在工作中遭遇到的问题,通过问题推导自己的不足以及对这段时间中自己的状态的分析,问题带来迷茫困扰,同时也伴随着个人的内心成长,我哪错了,我改,不断试错,不断纠错
思索离开校园已经两年有余,最初的一个半年头,独立学习在工作中使用的技术,框架,业余弄弄自己感兴趣的技术,比如WPF、.NET Core、Node.Js、微服务等方面,每天早出晚归,白天是属于公司,晚上属于自己,几点一线的生活
工作了,忙碌日常和校园相差甚大,也渐渐感触校园时光短暂,同时也为自己并未过于蹉跎那些日子我暗自窃喜,自己学的东西很杂,往往是自己知识树的横向过度拓展,然而每天的精力是有限的,好钢用在刀刃上,时间亦是如此,碎片化时间带来的往往是谁片化的知识记忆,一直在学,一直在遗忘,学的慢忘得反而更快,嘴上说温故而知新,又有多少能够做到,做技术的要耐得住寂寞,思索时才会寂寞,残酷的是,工作中没有那个时间留给自己去思索,时间是公平的,不会给任何人开小灶,鸡汤再多也挡不住时间和现实的摧残
自己到底在做什么?
自己做过啥?
接下来做什么?
天啦噜!惹不起这些抛问 ...
C#-查看微软内置程序集技巧
Vs2019提供了反编译查看的内置功能,本来高高兴兴,使用时间一长,自己渐渐不满足,需要更好的体验,找到一种新的方式,倍加感叹,相见恨晚
通过开启Vs2019反编译功能,本以为万事大吉,再也不用担心,自己看不到源码的困扰,事实证明我想多了,选中需要反编译的类或者函数,F12进入其中,如下:
F12
再次查看
这就难受了,反编译查看只能看到半截
这类类型,无法通过Vs2019自带的反编译工具查看到底层的源码,虽然说上层源码也能够猜测出部分功能,但是要是能够直接看到接下来的源码,当然更好,于是,找老哥,询问到一个在线源码链接referencesource:
输入对应的需要查询的内容,如ItemStructList
满意,个人非常满意,这个站点的具体细节需要进一步去探索
深化学习之程序集
开始看.NET技术的底层原理,不让自己显得那么肤浅,浮于言表,为自己添一砖加一瓦,戳戳这看似高深的段位和晦涩的理论,自我沉淀,心如止水
强命名程序集和弱命名程序集在结构上相同,PE文件头,CLR表头,元数据,以及清单表
弱命名程序集程序集不具有唯一性,能够被不同厂家的同名dll覆盖,不能够被共享(windows的GAC目录),仅仅能够放到项目基类路径或子目录中,程序集信息中PublicKeyToken = null使用反编译工具.NET Reflector查看:
强命名程序集含有一个发布者的公钥/私钥对,能够对称程序集进行唯一标识,实施安全策略和版本策略,从而能够将其部署到用户硬盘的任何地方,甚至是互联网上,PublicKeyToken = 末尾8位散列值,能够防止dll的版本被篡改,但不能够保护源码被反编译
生成强命名程序集1、打开当前vs的命令行工具2、输入sn查看该指令是否有效
1sn
3、切换到一个需要生成签名密钥(二进制存储的公钥密钥和私有密钥)的目录,生成密钥文件
12cd /d 目标目录sn -k ggcy.keys
4、生成公有密钥
1sn ...
C#关于字符串转简单运算表达式的相关方法记录
遇到一个需求,将存储在数据库中的计算表达式字符串,如“(2+4+5)/5*100.0” 转换为可以在代码中执行的计算公式,呀,以前没做过,怎么办?还能怎么办,打开浏览器,输入“C#字符串转运算符计算公式”,然后一条条筛选,
看看有没有灵感,于是乎开始了今天的话题,关于字符串转简单运算表达式的相关方法记录
网络搜索结果:通过COM引入JS,使用Js的Eval函数项目引用COM中的 Microsoft Script Control 1.0
Ps:此处Microsoft.JScript.Vsa.VsaEngine用法类似,不做细究
123456789101112131415161718//项目中添加上命名空间 MSScriptControlusing MSScriptControl;//省略非关键代码/// <summary>/// 通过COM方式调用JS执行字符串得到运算结果/// </summary>/// <param name="expression">运算公式字符串</param>public void Get ...
C#中string.Format转义大括号的方式
string.format中保留{}的使用方式,如果仅仅是以常规方式添加\会出转义失败,无法达到转义效果
错误方式:1string.Format("{{0}}",value);
输出:
1{0}
此时,函数不会识别{的嵌套方式,通过该格式执行后,本身的函数功能也失效,但不抛出异常。
解决方案:常用方式通过拼接字符串去解决,得到想要的输出结果
如下:
1"{"+string.Format("{0}",value)+"}";
输出:
1{value}
该方式治标不治本,本身并没有解决string.Format面临的解析问题,只是能够达到输出{}的目的
标准方式使用双{方式,在string.Format中识别为{,同理保留}也是使用双}去处理,如下:
1string.Format(" ...
Hexo + Next Theme + Github 的个人托管博客搭建
作为一名码农,从校园开始就希望有一个独属于自己的博客站点,有想法不行动,拖拖拖,折腾来折腾去,无意间发现了Hexo,惊鸿一瞥,就走不动路了,心心念念开始了入坑之路
安装Hexo的环境要求git+node.js 以下为基于windows系统的操作,安装过程请自行百度
git和ssh key 生成
如果有兴趣的同学可以尝试nvm进行node.js的安装和管理
安装Hexo Cli客户端打开cmd控制台,输入npm安装hexo客户端的指令:
1npm install -g hexo-cli
npm 为node.js的包管理工具的执行指令
-g 代表npm全局安装hexo-cli,避免在当前计算机中进行hexo客户端的多版本的重复安装
执行结果如下:
安装Hexo安装好hexo-cli之后,接下来就需要在本地安装hexo,执行指令如下:
1npm install -g hexo
执行结果如下:
初始化个人的博客本地站点安装好Hexo之后,输入hexo -v 查看是否安装成功
1hexo -v
执行结果如下:
找到一个自己需要放博客站点的文件夹路径,此处为myblog:
...
Love Life
如果说,生活充满挑战,那看似的轻而易举,也许就是混世中的举重若轻,生活多煎熬,我有你,做梦都会笑,爱生活,拥抱此刻,憧憬下一刻。
人心需要面向阳光,感受温暖,不麻木,同时时刻的提醒自己,不要忘记初心,内心的自我成长往往伴随着承受外界的鞭挞。
风雨中,有人冒雨前行,有人暂定脚跟,在路上寻找躲雨的地点,谁也说不上对错,谁也没有高人一等,有的都是在风雨中的苦苦挣扎和寻觅。
这是第一篇文章,本不应该如此消极沉闷,奈何胸中言语,不吐不快。
因达不到所以才会有希望,渴望把握机会,去看看梦那边的天,有没有如头顶一般存在着北极星的指引。