由于某些原因,Visual Studio赢得设计师不时对表单设计器文件和各自的resx应用枯燥的更改.
到目前为止最烦人的事:
这些更改不会影响表单/用户控制功能或外观,但它们会在源代码管理中产生大量噪音,使得合并几乎不可能,或者需要容易出错的手动修复以消除实际更改注意事项的所有更改,直到下一次更改为设计师.
任何想法如何防止工作室呢?
我正在使用字符串,它可能包含代理unicode字符(非BMP,每个字符4个字节).
当我使用" \ Uxxxxxxxxv "格式来指定F#中的代理字符时 - 对于某些字符,它给出的结果与C#的情况不同.例如:
C#:
string s = "\U0001D11E";
bool c = Char.IsSurrogate(s, 0);
Console.WriteLine(String.Format("Length: {0}, is surrogate: {1}", s.Length, c));
Run Code Online (Sandbox Code Playgroud)
得到: Length: 2, is surrogate: True
F#:
let s = "\U0001D11E"
let c = Char.IsSurrogate(s, 0)
printf "Length: %d, is surrogate: %b" s.Length c
Run Code Online (Sandbox Code Playgroud)
得到: Length: 2, is surrogate: false
注意:某些代理字符在F#("\ U0010011","\ U00100011")中有效,但其中一些不起作用.
问:这是F#中的错误吗?如何使用F#处理字符串中允许的代理unicode字符(F#有不同的格式,或者只有使用方式 Char.ConvertFromUtf32 0x1D11E)
更新:
s.ToCharArray()给出F#[| 0xD800; 0xDF41 |]; 对于C#{ 0xD834, 0xDD1E }
我有一个使用winforms和WPF的C#程序,我很难让它在高DPI环境中工作.目前,如果我从解决方案中删除所有WPF项目并运行它,它将可以很好地扩展,但是一旦我添加任何wpf(功能必需),扩展失败并且UI变得不可用.
这似乎与之前的SO问题完全相同:混合WinForms和WPF应用程序中的.Net 3.5中的DPI缩放以及使用DPI正确扩展WinForms的问题
我按照有关这些问题的建议,尝试添加清单文件和提供的dpi识别代码.
我还将项目升级到.net framework 4.6.1(从4.0开始)并包含了app.config设置: <add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />
这确实影响了程序的主shell(因此,不是在一个小窗口中加载所有控件被压缩,主程序窗口打开最大化并显示正常)但是,当我从主窗口输入任何winforms子窗体或插件时,缩放失败.
当我输入任何WPF子窗体或插件,或返回到主屏幕时,这些渲染正确.只有winforms功能无法正确扩展.
有没有人对如何让混合winforms/WPF项目在高DPI中正确扩展有任何想法?
提前致谢
我有一个包含网站和几个依赖项目的解决方案.我需要用MSBuild构建这个解决方案.问题是我需要构建站点本身只是为了解析引用,然后扔掉构建的结果.我已经看过解决方案.metaproj文件,但它只包含允许我构建网站的目标.我正在使用它,因为它也解析了这些引用.这不是一个关键问题,但在我的情况下,构建该网站本身需要两分钟的时间.
当然,我可以手动构建依赖项目,然后只需复制构建结果......但每次添加新引用时,都需要修改构建文件.
这样做有聪明的方法吗?