你可以使用UTF-8字符串作为StartInfo的参数吗?
我试图将UTF-8(在本例中为日语字符串)作为控制台参数传递给应用程序.
这样的事情(这只是一个例子!(cmd.exe将是一个自定义应用程序))
var process = new System.Diagnostics.Process();
process.StartInfo.Arguments = "/K \"echo ????????\"";
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.UseShellExecute = true;
process.Start();
process.WaitForExit();
Run Code Online (Sandbox Code Playgroud)
执行此操作似乎松开了UTF-8字符串,所有目标应用程序看到的都是"echo ?????????"
直接在命令行上执行此命令(通过粘贴参数),目标应用程序正确接收字符串,即使命令行本身似乎没有正确显示它.
我是否需要做一些特殊的事情才能在参数中启用UTF-8支持,或者这是不支持的?
如何使用原始编码保存图像?
似乎保存图像的唯一方法是使用BitmapEncoder,但我不知道如何从图像中获取正确的格式.
例:
Clipboard.GetImage()返回一个InteropBitmap,它似乎不包含任何有关原始格式的信息.
我也尝试使用Extension方法:
public static void Save(this BitmapImage image, System.IO.Stream stream)
{
var decoder = BitmapDecoder.Create(image.StreamSource, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
var encoder = BitmapEncoder.Create(decoder.CodecInfo.ContainerFormat);
foreach (var frame in decoder.Frames)
{
encoder.Frames.Add(BitmapFrame.Create(frame));
}
encoder.Save(stream);
}
Run Code Online (Sandbox Code Playgroud)
但问题是
有什么建议?
我只是写了一句if语句
if (value == value1 || value == value2 || value == value3 || value == value4)
//do something
Run Code Online (Sandbox Code Playgroud)
令我很生气的是,我总是要重复'value =='部分.在我看来,除了难以阅读之外,这没有其他目的.
我编写了以下ExtensionMethod,它应该使上面的场景更具可读性:
public static bool IsEqualToAny<T>(this T value, params T[] objects)
{
return objects.Contains(value);
}
Run Code Online (Sandbox Code Playgroud)
现在我可以简单地写
if (value.IsEqualToAny(value1, value2, value3, value4))
//do something
Run Code Online (Sandbox Code Playgroud)
这是ExtensionMethod的一个很好的用法吗?
编辑:
感谢所有的好答案.记录:我保留了方法.虽然您可以简单地使用的建议new []{value1,value2,value3,value4}.Contains(value)是正确的,但我只是更喜欢从左到右读取这种if语句(如果此值等于其中任何一个而不是这些值包含此值).在每个对象的intellisense中显示另一个方法对我来说不是问题.
我想把ScrollViewer放在它滚动的内容重叠/位于其上面的方式.我会设置ScrollViewer的不透明度,以便内容在下面可见.
据我所知,默认的ScrollViewer,这似乎不可能开箱即用,因为内容嵌套在ScrollViewer中.
关于如何使这项工作的任何想法?
编辑:我知道ScrollViewer是一个装饰器,内容不知道ScrollViewer.这种分离很好,我不希望内容知道ScrollViewer.我尝试做的是纯粹的视觉(布局)事物.只需在内容之上显示ScrollViewer.ScrollViewer的行为应保持不变.
我有一些相当简单的动画(移动文本,移动椭圆等)并在全屏幕(1920x1080减去任务栏)中运行WPF Performance Suite在整个动画中报告大约50 FPS的良好帧率.Dirty Rect Addition大约300 rect/s,SW帧在0到4之间,HW帧在3到5之间.视频内存使用大约是80 MB.

问题是动画每隔一秒就会断断续续.绝对不流畅:-(
我的机器是全新戴尔笔记本电脑XPS 15,配备GeForce GT 435和2GB内存. - 司机是最新的.(同样的行为也出现在我的上网本(全屏)中,所以我不认为它与硬件有关.)
如果我让窗户变小,口吃就会消失.
口吃最简单的动画 - 即使只有几个元素,但添加更多元素肯定会使它更明显.
我怎样才能找出导致这种口吃的原因?
当我想到它时,我实际上还没有看到任何WPF动画在全屏幕上流畅运行.这甚至可能吗?
编辑:我的错!我希望在实际上只更改PrinterSettings的本地实例时,将更改写回默认的打印机设置. - 以下代码似乎按预期工作
我试图显示给定打印机的自定义打印机属性.我需要这个作为我想写的自定义PrintDialog的一部分.
我在网上找到的大多数示例都设法显示对话框,但用户可能做出的任何更改都会丢失,这使得它无用.
示例:http: //www.codeproject.com/KB/system/PrinterPropertiesWindow.aspx
(关于上面的页面:我试图改变BartJoy建议的代码(在页面上)但是没有修复它)
我也尝试过pinvoke.net页面上的示例和建议,但它仍然不起作用:
http://www.pinvoke.net/default.aspx/winspool.documentproperties
从上面的网站我假设问题可能只在64位Windows上和/或如果打印机名称超过32个字符.
我不知道接下来应该尝试什么...我感谢任何建议和意见!
编辑:这是我尝试过的:
[DllImport("winspool.Drv", EntryPoint = "DocumentPropertiesW", SetLastError = true,
ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
static extern int DocumentProperties(IntPtr hwnd, IntPtr hPrinter,
[MarshalAs(UnmanagedType.LPWStr)] string pDeviceName,
IntPtr pDevModeOutput, IntPtr pDevModeInput, int fMode);
[DllImport("winspool.drv")]
private static extern int OpenPrinter(string pPrinterName, out IntPtr hPrinter, IntPtr pDefault);
[DllImport("winspool.drv")]
private static extern int ClosePrinter(IntPtr phPrinter);
[DllImport("kernel32.dll")]
static extern IntPtr GlobalLock(IntPtr hMem);
[DllImport("kernel32.dll")]
static extern bool GlobalUnlock(IntPtr hMem);
[DllImport("kernel32.dll")]
static extern bool GlobalFree(IntPtr …Run Code Online (Sandbox Code Playgroud) 我可以配置VS2010 Intellisense以便它执行此操作:
SomeEvent += Some_Method;
Run Code Online (Sandbox Code Playgroud)
而不是这个:
SomeEvent += new EventHandler(Some_Method);
Run Code Online (Sandbox Code Playgroud)
通过+ =添加EventHandler并按Shift键?
据我所知,就生成的IL而言,这没有任何区别,但我个人更喜欢第一个版本.它更容易阅读,当我去更改EventHandler类型为不同的东西时,我不必去修复+ =/ - =调用.
我知道我可以将svg文件设置为srcHTML img元素,如下所示:
<img src="mySVG.svg"/>
Run Code Online (Sandbox Code Playgroud)
但我不知怎么设置动态SVG元素作为src的img?
<svg id="mySVGElement">
...
</svg>
<img src="?"/>
Run Code Online (Sandbox Code Playgroud) 我有以下情况:
现在,我可以使用固定项目/快捷方式来启动我的应用程序,但在我使用另一个.msi文件更新我的应用程序后,单击固定项目会显示以下错误:
'快捷方式问题' - 参数不正确.
我检查了捷径,据我所知,它指向与之前版本相同的目录/文件.(新版本具有相同的文件/位置).我假设有一些版本控制/程序文件魔术发生导致此问题,但没有在网上找到任何好的信息.
更多信息:
有人知道吗?
设置/帐户下的 WooCommerce 有一个名为的选项
从客户电子邮件自动生成用户名
但它生成的用户名不是完整的电子邮件地址。
my.email@example.com
成为myemail用户名。
我需要使用什么方法来覆盖用户生成,以便将 完整的电子邮件设置为用户名?