小编Jul*_*lia的帖子

ShowDialog()什么时候返回null?

WPF的Window.ShowDialog方法返回一个可以为空的布尔值.那样做CommonDialog.ShowDialog.

现在,我理解这些将返回false的情况(用户单击取消或按下Esc),以及何时返回true(代码集Window.DialogResult为true,可能是为了响应OK单击).但是null?

我的第一个想法是单击标题栏的"关闭"按钮可能会返回null.但文档说明(我通过测试确认)标题栏关闭按钮被视为取消.

那么什么时候会Window.ShowDialog或者CommonDialog.ShowDialog永远返回null?

wpf null showdialog

32
推荐指数
1
解决办法
8414
查看次数

在C#中获取/设置文件所有者

我需要读取和显示文件的所有者(用于审计目的),并且可能也会更改它(这是次要要求).有没有好的C#包装器?

快速谷歌后,我发现只有WMI解决方案和PInvoke GetSecurityInfo的建议

.net c#

26
推荐指数
1
解决办法
3万
查看次数

如何避免鼠标在Touch上移动

我有一个WPF应用程序,可以使用鼠标和使用Touch.我禁用所有窗口"增强功能"以便只触摸事件:

Stylus.IsPressAndHoldEnabled="False"
Stylus.IsTapFeedbackEnabled="False"
Stylus.IsTouchFeedbackEnabled="False"
Stylus.IsFlicksEnabled="False"
Run Code Online (Sandbox Code Playgroud)

结果是点击的行为就像我想要的那样,除了两点:

  • 拖动时点击一个小的"触摸"光标(小白星).
    完全无用,因为用户手指已经在这个位置,不需要反馈(除非我的元素在可行的情况下可能改变颜色).
  • 移动/点击结束后,元素保持"悬停"状态.

两者都是这样一个事实的结果:当Windows正确传输触摸事件时,他仍然将鼠标移动到最后一个主触摸事件.

当我在应用程序中使用触摸时,我不希望窗口完全移动鼠标.有没有办法完全避免这种情况?

笔记:

  • 处理触摸事件对此没有任何改变.
  • 使用SetCursorPos移动鼠标使光标闪烁,并不是真正用户友好.
  • 禁用触摸面板充当输入设备会完全禁用所有事件(我也更喜欢应用程序本地解决方案,而不是系统范围的解决方案).
  • 我不在乎解决方案是否涉及COM/PInvoke或在C/C++中提供我将翻译.
  • 如果有必要修补/挂钩一些Windows dll,那么软件无论如何都将在专用设备上运行.
  • 我正在调查表面SDK,但我怀疑它会显示任何解决方案.由于表面是纯触摸设备,因此不存在与鼠标交互不良的风险.

c# wpf windows-7

21
推荐指数
1
解决办法
1万
查看次数

如何在Git中,从指定的日期克隆远程(GitHub)存储库

我正在尝试从特定日期克隆一个git存储库.即使这是不可能的.是否可以克隆git存储库,然后将其回滚到某个特定日期?

示例:我的存储库自2010年5月以来已更新,但我想从6月5日开始获取该版本.我想运行以下命令:

git clone git@github.com:projectfolder -date 06-05-2010
Run Code Online (Sandbox Code Playgroud)

git github

19
推荐指数
3
解决办法
2万
查看次数

以编程方式将目录添加到Windows PATH环境变量

我正在编写一个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的答案.

c++ registry environment winapi environment-variables

15
推荐指数
1
解决办法
1万
查看次数

你怎么知道javascript中的对象是否是JSON?

我怎么知道变量是JSON还是其他东西?是否有一个JQuery函数或我可以用来解决这个问题的东西?

javascript jquery json

14
推荐指数
3
解决办法
2万
查看次数

如何在VS 2015中关闭Roslyn Code Fixes?

如何在VS 2015中关闭Roslyn Code Fixes?

它正常工作(使用最新的Resharper 9.1.2),但在初始化它阻止导航时,我的意思是Home,End,Left,Right延迟0.5-1.5秒.此外它似乎是傻瓜导航键,现在是我发现自己在VS主菜单中的第十次,或者只是通过按下我列出的4个导航键的其他源文件,我不知道如何...

在此输入图像描述

到目前为止我尝试过的:

  1. 在工具/选项中查找并搜索'Roslyn'
  2. 带有Roslyn代码修复的上下文菜单
  3. 谷歌
  4. Stackoverflow中的本机搜索

可能我错过了一些不会那么难的东西......

visual-studio roslyn visual-studio-2015

14
推荐指数
1
解决办法
8374
查看次数

C#:各种<string,string>集合之间的区别

这是一个我总是经常回来的问题:

什么是最好的<string, string>集合使用,对于一些xyz情况(最常见的是绑定到a DropDownList)?

有人为此准备了备忘单吗?各种选项之间的区别的完整列表?

c# string generics collections dictionary

13
推荐指数
1
解决办法
292
查看次数

为什么IsNan是Double类的静态方法而不是实例属性?

问题在标题中,为什么:

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语言)

c# oop

12
推荐指数
2
解决办法
1854
查看次数

C#ImageFormat为字符串

如何从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# image

12
推荐指数
2
解决办法
9131
查看次数