问题列表 - 第2674页

C#WPF解决方案独立性?

我正在使用C#在WPF中开发一个地图控件.我正在使用画布控件,例如400 x 200,其指定的地图区域为例如2,000mx 1,000m.

地图的比例为: canvas_size_in_meters/real_size_in_meters.

我想找到canvas_size_in_meters.

canvas.ActualWidth给出DIU的宽度(设备独立单位).因此,400 DIU是400/96 = 4,17英寸,提供我的显示器的物理分辨率是96 dpi.

但是,使用标尺,我发现我的显示器的物理分辨率是87 dpi.(实际上只有少数显示器具有96个物理dpi)

DPI差异(10%)转换为屏幕上实际地图控制宽度的+ 10%差异.

如何以英寸为单位测量WPF控件的大小,无论屏幕分辨率和DPI设置如何?

c# gis wpf resolution dpi

12
推荐指数
1
解决办法
9228
查看次数

在vb.net控制台exe中获取启动路径

如何获取我的exe的启动路径(system.windows.forms.application.StartupPath)而不添加对system.windows.forms的引用?

vb.net io

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

在C#中构建对象的更好方法

我有一个我的对象类型的应用程序,它继承自包含应用程序对象的大多数属性的基类.所有对象类型都存储在数据库的一个表中."ClassType"列确定将SqlDataReader行转换为的对象类型.

这是我目前的实施:

SqlDataReader dr = SqlServerHelper.ExecuteReader("MyStoreProc", MySqlParmas);

if(dr.HasRows)
{
    while(dr.Read())
    {
        switch(dr["ClassType"].ToString())
        {
            case "ClassA":
                //cast sqldatareader a ClassA object
                ClassA a = new ClassFactory.CreateClassA(object p1, object p2);
            case "ClassB":
                //cast sqldatareader a ClassB object
                ClassB b = new ClassFactory.CreateClassB(object p1, object p2);
        //it continues for all objects with app....
        }
    }
}

dr.Close()
Run Code Online (Sandbox Code Playgroud)

我的问题是他们对这种处理有更好的实现吗?

c# data-access-layer

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

在Powershell中,如何将带有尾随"符号"的字符串转换为数字?

我需要使用Powershell将带有可选尾部符号的字符串转换为实际数字.

可能的字符串是:

  • 1000-
  • 323+
  • 456

我正在尝试使用带有NumberStyles的AllowTrailingSign的System.Int.TryParse,但我无法弄清楚如何使Powershell可以使用System.Globalization.NumberStyles.

globalization powershell type-conversion

6
推荐指数
1
解决办法
3396
查看次数

使用Cocoa(OS X)进行内存中的mime类型检测?

我的应用程序是一个自定义格式的查看器,一个带有明确定义的XML清单和资源(如图像和电影)的zip文件.我使用zlib打开内存中的zip文件,然后继续显示所述资源.

我遇到的一个问题是我无法正确显示视频,显然是因为QTMovie无法确定mime类型.从文件加载的电影([QTMovie movieWithFile])完美无缺.从内存中加载([QTMovie movieWithData])拒绝工作.

这是有道理的,因为缺少文件扩展名,QTMovie无法确定mime类型信息.经过一番搜索后,我在下面的mannner中使用了QTDataReference:

NSData *movieData = ...read from memory...;
QTDataReference *movieDataReference = [[QTDataReference alloc] initWithReferenceToData:movieData name:fileName MIMEType:@"video/x-m4v"];
QTMovie *mov = [QTMovie movieWithDataReference:movieDataReference error:&err];
Run Code Online (Sandbox Code Playgroud)

这很好用,但硬编码MIMEType远非理想.我可以访问文件名和扩展名,所以我试图使用UTI找到mime-type(感谢#macdev上的好朋友):

- (NSString*)mimeTypeForExtension:(NSString*)ext {

    CFStringRef UTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension,(CFStringRef)ext,NULL);
    return NSMakeCollectable(UTTypeCopyPreferredTagWithClass((CFStringRef)UTI,kUTTagClassMIMEType));
}
Run Code Online (Sandbox Code Playgroud)

然而,这不起作用.显然,在某个地方有一个扩展的内部OS X数据库和相应的mime类型.否则,磁盘电影将无法正常工作.我如何获得它?

谢谢!

macos cocoa quicktime mime-types

4
推荐指数
2
解决办法
3234
查看次数

启动java应用程序时使用-noverify

我已经看到许多应用程序采用仪器类,并-javaagent在加载时将其作为参数放入-noverify命令行.

Java doc说,-noverify关闭了类验证.

然而,为什么有人想要关闭验证,即使他们正在检测课程?

java command-line-arguments

35
推荐指数
4
解决办法
4万
查看次数

怎么用套装!在Scheme函数?

你会怎么用套装!在一个简单的过程中,如果从左到右计算+的参数,如果从右到左计算参数,则评估(+(f 0)(f 1))将返回0?

scheme

5
推荐指数
1
解决办法
9383
查看次数

如何查找不在列表中的字符串中的第一个char的索引

我知道我可以遍历字符串或构建正则表达式或反转集合(毕竟ASCII不是那么大)并搜索第一个实例,但是Yuck.

我正在寻找的是一个漂亮的衬垫.

更少的功能更好,LINQ出局了(对我来说,不要问,这是一个长篇故事)


我要去的解决方案(除非我看到更好的东西)

static int FirstNotMeta(int i, string str)
{
    for(; i < str.Length; i++)
        switch(str[i])
        {
            case '\\':
            case '/':
            case '.':
                continue;
            default:
                return i;
        }
    return -1;
}
Run Code Online (Sandbox Code Playgroud)

好吧,我作弊,我事先知道我关心的是什么char.

c# string search

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

如何使用reverse_iterator插入

我想在C++中将一些东西插入到STL列表中,但我只有一个反向迭代器.通常的方法是什么?

这有效:(当然可以)

std::list<int> l;
std::list<int>::iterator forward = l.begin();
l.insert(forward, 5);
Run Code Online (Sandbox Code Playgroud)

这不起作用:(我该怎么办?)

std::list<int> l;
std::list<int>::reverse_iterator reverse = l.rbegin();
l.insert(reverse, 10);
Run Code Online (Sandbox Code Playgroud)

c++ stl

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

在c ++中启动app,捕获stdout和stderr

如何启动应用程序并通过stdout和stderr捕获输出?

我正在编写一个自动构建系统,我需要捕获输出以进行分析.我想更新svn repo并获取修订号,这样我就可以在autobuild/revNumber /中移动文件,如果成功的话.我还想使用make构建并将编译文本上传到我的服务器,以便每个人都能看到失败构建的警告和错误.

我找不到该system()功能,但我CreateProcess()在MSDN上找到了该功能.我能够启动我需要但我不知道如何捕获stderr和stdout.我注意到该过程是单独启动的,除非我设置断点并保持我的应用程序退出,然后它将保留我的应用程序控制台窗口中的所有文本.我还想等到所有进程完成后再扫描它生成的数据,以执行我需要的任何其他操作.我该怎么做?

c++ stdout process capture launch

7
推荐指数
1
解决办法
6861
查看次数