WPF的Window.ShowDialog
方法返回一个可以为空的布尔值.那样做CommonDialog.ShowDialog
.
现在,我理解这些将返回false的情况(用户单击取消或按下Esc),以及何时返回true(代码集Window.DialogResult
为true,可能是为了响应OK单击).但是null?
我的第一个想法是单击标题栏的"关闭"按钮可能会返回null.但文档说明(我通过测试确认)标题栏关闭按钮被视为取消.
那么什么时候会Window.ShowDialog
或者CommonDialog.ShowDialog
永远返回null?
我需要读取和显示文件的所有者(用于审计目的),并且可能也会更改它(这是次要要求).有没有好的C#包装器?
快速谷歌后,我发现只有WMI解决方案和PInvoke GetSecurityInfo的建议
我有一个WPF应用程序,可以使用鼠标和使用Touch.我禁用所有窗口"增强功能"以便只触摸事件:
Stylus.IsPressAndHoldEnabled="False"
Stylus.IsTapFeedbackEnabled="False"
Stylus.IsTouchFeedbackEnabled="False"
Stylus.IsFlicksEnabled="False"
Run Code Online (Sandbox Code Playgroud)
结果是点击的行为就像我想要的那样,除了两点:
两者都是这样一个事实的结果:当Windows正确传输触摸事件时,他仍然将鼠标移动到最后一个主触摸事件.
当我在应用程序中使用触摸时,我不希望窗口完全移动鼠标.有没有办法完全避免这种情况?
笔记:
我正在尝试从特定日期克隆一个git存储库.即使这是不可能的.是否可以克隆git存储库,然后将其回滚到某个特定日期?
示例:我的存储库自2010年5月以来已更新,但我想从6月5日开始获取该版本.我想运行以下命令:
git clone git@github.com:projectfolder -date 06-05-2010
Run Code Online (Sandbox Code Playgroud) 我正在编写一个Win32 DLL,其函数可以将目录添加到Windows PATH环境变量(在安装程序中使用).
在DLL运行后查看Regedit或控制面板中的环境变量,向我显示我的DLL已成功添加到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
和的路径HKEY_CURRENT_USER\Environment
.
但是当我启动一个新的命令提示符(运行DLL之后)时,我添加的目录没有显示在输出中echo %PATH%
,我无法通过键入其名称来访问该目录中的可执行文件.
我认为我的程序没有很好地通知系统PATH已经改变,或者它可能在更改完全生效之前通知它们.我阅读了微软的一篇文章,该文章说WM_SETTINGCHANGE
在更改环境变量后广播该消息,我正在使用以下代码:
DWORD result2 = 0;
LRESULT result = SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0,
(LPARAM)"Environment", SMTO_ABORTIFHUNG, 5000, &result2);
if (result == 0){ /* ... Display error message to user ... */ }
Run Code Online (Sandbox Code Playgroud)
我的电话的顺序是:RegCreateKeyEx
,RegSetValueEx
,RegCloseKey
,SendMessageTimeout
如果我在控制面板"环境变量"窗口中按"确定",我的DLL对PATH所做的更改将显示在新创建的命令提示中,因此控制面板正在做一些事情来传播PATH更改; 我想弄明白它是什么,做同样的事情.
有谁知道我应该怎么做?
我正在运行64位Windows Vista,但我希望这适用于所有Windows XP,Vista和Windows 7操作系统.
更新: 我上面发布的代码的问题是我没有在"环境"字符串上放置L前缀.虽然它没有明确地说明我在Microsoft文档中的任何地方,但LPARAM需要是指向WCHAR字符串(2字节字符)而不是CHAR字符串的指针,这是Visual Studio编译器默认生成的当我写一个字符串文字.我的问题的解决方案是将"环境"改为L"环境".(我以为在发布这个问题之前我已经尝试过了,但显然我没有正确地尝试过!)但是任何想要完成这个任务的完整C++解决方案的人都应该看看Dan Molding的答案.
我怎么知道变量是JSON还是其他东西?是否有一个JQuery函数或我可以用来解决这个问题的东西?
如何在VS 2015中关闭Roslyn Code Fixes?
它正常工作(使用最新的Resharper 9.1.2),但在初始化它阻止导航时,我的意思是Home,End,Left,Right延迟0.5-1.5秒.此外它似乎是傻瓜导航键,现在是我发现自己在VS主菜单中的第十次,或者只是通过按下我列出的4个导航键的其他源文件,我不知道如何...
到目前为止我尝试过的:
可能我错过了一些不会那么难的东西......
这是一个我总是经常回来的问题:
什么是最好的<string, string>
集合使用,对于一些xyz情况(最常见的是绑定到a DropDownList
)?
有人为此准备了备忘单吗?各种选项之间的区别的完整列表?
问题在标题中,为什么:
return double.IsNaN(0.6d) && double.IsNaN(x);
Run Code Online (Sandbox Code Playgroud)
代替
return (0.6d).IsNaN && x.IsNaN;
Run Code Online (Sandbox Code Playgroud)
我问,因为在实现具有与NaN相同含义的特殊值的自定义结构时,我倾向于选择第二种结构.
此外,属性的性能通常更好,因为它避免复制堆栈上的结构以调用IsNaN静态方法(并且因为我的属性不是虚拟的,所以没有自动装箱的风险).当然,对于内置类型来说这不是一个真正的问题,因为JIT可以很容易地优化它.
我现在最好的猜测是,因为你不能在double类中同时拥有属性和静态方法,所以他们更喜欢java启发的语法.(事实上你可以同时定义一个get_IsNaN属性getter,另一个定义一个IsNaN静态方法,但它会混淆任何支持属性语法的.Net语言)
如何从System.Drawing.ImageFormat对象获取人类可读的字符串(即图像格式本身)?
我的意思是,如果我有ImageFormat.Png
可能将其转换为"png"字符串?
编辑:我在这看到一些误解.这是我的代码:
Image objImage = Image.FromStream(file);
ImageFormat imFormat = objImage.RawFormat;
imFormat.ToString();
Run Code Online (Sandbox Code Playgroud)
它返回" [ImageFormat: b96b3caf-0728-11d3-9d7b-0000f81ef32e]
"但我想要" Png
"!
c# ×5
wpf ×2
.net ×1
c++ ×1
collections ×1
dictionary ×1
environment ×1
generics ×1
git ×1
github ×1
image ×1
javascript ×1
jquery ×1
json ×1
null ×1
oop ×1
registry ×1
roslyn ×1
showdialog ×1
string ×1
winapi ×1
windows-7 ×1