小编Mar*_*ini的帖子

是否可以像在WebView中一样在Windows窗体中嵌入Gecko或Webkit?

我很想知道是否有像Gecko.NET这样的东西;)我的意思是,就像我们可以嵌入一个WebView,这是任何Windows窗体应用程序中的IE7"实例"(并告诉它navigateto(fancy_url);).我喜欢使用Firefox或WebKit.

有人试过吗?

更新:请记住,虽然可以使用上述控件嵌入Gecko,但使用Gecko时仍然无法打印.

更新2010年3月:仍然无法使用GeckoFX本地打印,但是根据您尝试做的事情,存在一些可能已经足够的方法.有关详细信息,请参阅:http://geckofx.org/viewtopic.php?id = 796.

更新2013年10月:我不再进行Windows开发,所以我对此没有兴趣,但似乎可以在这里找到Gecko的开发:https://bitbucket.org/geckofx,它似乎最近更新了.将此留给未来的Windows开发人员;)

更新2017年1月:我收到了一家名为TeamDev的公司的电子邮件.他们创建了一个名为"DotNetBrowser"的基于Chromium的.NET浏览器组件,可用于在Windows窗体应用程序中显示现代网页.

直接引用电子邮件:

以下是有关该组件的一些详细信息,可能会有所帮助:

  1. DotNetBrowser基于Chromium,因此支持HTML5,CSS3,JS和最新的Web标准.库的基础Chromium版本会定期更新.
  2. 该组件适用于WPF以及Windows Forms桌面应用程序,适用于C#和VB.NET.
  3. 该图书馆是商业许可的,但是为开源和学术项目提供免费许可.

免责声明: 我没有使用过这个DotNetBrowser,因为我不再进行Windows开发,但如果您正在寻找解决方案,可能值得一试.

.net c# gecko webkit winforms

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

LINQ:点表示法与查询表达式

我开始一般使用LINQ(到目前为止使用XML和toSQL).我已经看到有时候有两种或更多种方法可以达到相同的效果.拿这个简单的例子,据我所知,两者都返回完全相同的东西:

SomeDataContext dc = new SomeDataContext();

var queue = from q in dc.SomeTable
        where q.SomeDate <= DateTime.Now && q.Locked != true
        orderby (q.Priority, q.TimeCreated)
        select q;

var queue2 = dc.SomeTable
        .Where( q => q.SomeDate <= DateTime.Now && q.Locked != true )
        .OrderBy(q => q.Priority)
        .ThenBy(q => q.TimeCreated);
Run Code Online (Sandbox Code Playgroud)

除了我在语法中可能犯的任何错误或缺少参数或差异之外,我们的想法是有两种表达同一事物的方法; 我知道第一种方法有一些局限性,"点符号"更完整,但除此之外,还有其他优点吗?

linq lambda .net-3.5

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

根据Winforms/C#中的文本和字体大小确定标签大小

我想知道是否有更好的方法解决这个问题.我想调整标签的大小(垂直)以容纳一定数量的文本.我的标签有一个固定的宽度(在它必须包裹之前大约60个字符宽),大约495像素.字体也是固定大小(12分afaik),但文本不是.

我想要做的是当有"NewLine"或文本必须换行时增加Label Height; 这个想法是文本在标签中完全可见.AutoSize不起作用,因为它会在宽度上增长,而不是在高度上增长.

当然我可以计算NewLines的数量并添加:Newlines*LineHeight,然后-given我设法每行放60个字符,只需要分割字符数并根据需要添加尽可能多的LineHeight像素.

我想知道是否有更专业的方法来做到这一点.我的做法太"蹩脚"了吗?

提前致谢.

.net c# winforms

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

将google-play-services lib导入Intellij IDEA 12(和13)

我想将Google Play服务库导入(并使用)到现有的Android项目中,但我正在努力解决必须存在的依赖问题.

谷歌编写的所有文档都基于Eclipse.我们使用IntelliJ IDEA.

我知道的事情:

  • 我知道如何在IntelliJ中导入模块,库,添加依赖项等.
  • 我也知道,根据Google的入门指南,您必须将google-play-services-lib添加到(Eclipse)中作为项目(通过将现有代码导入工作区),并且您可以在IntelliJ中执行此操作通过从现有代码添加新模块.这是相同的程序,不同的名称.
  • 我也理解订单和导出选项卡在Eclipse中的功能(IntelliJ也可以).

我做过的事情:

  • 我将google-play-services_lib文件夹(从安全性)复制到Android SDK到我的项目根目录.所以我有/ myprj和/ google-play-services_lib在同一级别(我也有/ facebooksdk和/ actionbarsherlock在同一级别)并继续进行"导入模块"(来自现有源).然后点击下一个下一个......(它有效,它被识别).

项目结构看起来像这样(名称故意模糊):

项目结构

  • 这正确添加了一个模块(如上面的屏幕截图所示).现在我需要添加依赖项,以便我的主项目知道这一点.我转到我的模块并在列表中,选择我的主模块,然后选择依赖项选项卡.我可以看到一些库(Joda时间,android-query,gson等)和两个模块:FacebookSDKactionbarsherlock.到现在为止还挺好.这就是事情变得怪异的时候.

我试图添加的依赖关系.

注意:在大多数情况下,我尝试检查并取消选中导出复选框,并尝试同时将其添加到sherlockbar模块,仅用于测试.我知道这些是很多组合,但是哦.

1)添加一个Jar或目录(知道这是错的,我试过).并指向google play module/libs中的.jar,名为:google-play-services.jar.

2)添加一个(然后将其添加到项目中)

3)添加模块依赖项(选择主项目时).这会显示一个像这样的弹出窗口:

添加依赖

问题

即使我可以引用一个PlusClient并获得正确的导入,当我尝试在我的布局xml中添加一个SignInButton时,我收到一个错误.

粘贴整个XML布局是没有意义的,因为它没有任何奇怪的东西,它只是一个带有一些textview的RelativeLayout.我像这样添加了g +按钮:

  <com.google.android.gms.common.SignInButton
    android:id="@+id/sign_in_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/logo_login"
    android:layout_marginBottom="30dip" />
Run Code Online (Sandbox Code Playgroud)

就像谷歌说的那样.

可能出现问题的第一个迹象是IntelliJ警告您元素"在这里无效",但我认为这是视觉设计师的限制而不是真正的问题.

但是,当我运行该项目时,我得到了这个:

07-30 17:50:44.854: ERROR/ActivityThread(22324): Failed to inflate
    android.view.InflateException: Binary XML file line …
Run Code Online (Sandbox Code Playgroud)

android intellij-idea actionbarsherlock google-play-services

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

ConstraintLayout链和文本省略+右侧图像

2018年7月更新:

如果您正在使用ConstraintLayout 1.1.0,则使用正确的属性app:layout_constrainedWidth="true"代替旧的app:layout_constraintWidth_default="wrap"(和高度对应的).查看更新的答案.

2017年11月更新:

如果您使用的是ConstraintLayout 1.0.0稳定版(或以上版本)(此时为1.0.2版),请参阅更新的答案以获得更简单的解决方案,而无需嵌套布局.

原始问题:

使用ConstraintLayouts-Beta3于2016年11月3日发布.(来源)

我正在尝试执行以下操作:

ConstraintLayout 1.1.0

我用这样的布局实现了这个目标:

|                                        |
|<-[TextView]<->[ImageView] -----------> |
|                                        |
Run Code Online (Sandbox Code Playgroud)

这看起来不错,但是当文本比可用空间长时......

app:layout_constrainedWidth="true" 文本视图具有指定以下内容的样式:

  <TextView
      android:id="@+id/textView"
      android:layout_height="wrap_content"
      android:layout_width="wrap_content"

      app:layout_constraintHorizontal_chainStyle="packed"

      app:layout_constraintLeft_toLeftOf="parent"
      app:layout_constraintTop_toTopOf="parent"
      app:layout_constraintRight_toLeftOf="@+id/caret"
      app:layout_constraintHorizontal_bias="0.0"

      android:text="Some Text"
      android:textAlignment="viewStart"
      android:gravity="start" />

  <ImageView
      android:id="@+id/caret"
      android:layout_width="wrap_content"
      android:layout_height="8dp"
      app:layout_constraintDimensionRatio="1:1"

      app:layout_constraintLeft_toRightOf="@+id/textView"
      app:layout_constraintRight_toRightOf="parent"

      app:layout_constraintTop_toTopOf="@+id/textView"
      app:layout_constraintBottom_toBottomOf="@+id/textView"


      app:layout_constraintHorizontal_bias="0.0"

      android:contentDescription=""
      app:srcCompat="@drawable/ic_selection"
      android:layout_marginStart="8dp"/>
Run Code Online (Sandbox Code Playgroud)

所以它应该工作,但我不确定我需要什么约束让图像滑到右边然后在那里让文本视图理解没有更多的空间.

我错过了什么?

注意:如果我将textview的宽度设置为0dp,它可以工作,但是图像总是在右边(水平偏差似乎被忽略了)

注2:我也尝试过beta2,事实上,似乎Beta3 在可视化编辑器中有一个错误.

更新:我试图在Xcode/AutoLayout中复制它:

这是短文本的外观

短文

现在是相同的布局,我只需在文本视图中键入一个长文本...

长文

正如您可以看到图像视图的轨迹(右)约束所示:您从右边距开始有8个或更多 …

android android-studio android-constraintlayout constraint-layout-chains

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

Winforms:SuspendLayout/ResumeLayout是不够的?

我有一些库"自定义控件".基本上我们有自己的按钮,圆角板和一些带有一些定制油漆的组合箱.尽管OnPaint方法中存在"数学",但控件非常标准.大多数情况下,我们所做的只是绘制圆角并为背景添加渐变.我们使用GDI +来实现这一切.

这些控件都可以(根据我们的客户非常好看),但是尽管有DoubleBuffer,你可以看到一些重绘,特别是当同一个表格上有20个++按钮时(例如).在表单加载时,您会看到绘制的按钮...这很烦人.

我很确定我们的按钮不是地球上最快的东西,但我的问题是:如果双缓冲区"打开",那么不应该在后台进行所有重绘,而Windows子系统应该"立即"显示结果吗?

另一方面,如果存在将创建标签的"复杂"foreach循环,则将它们添加到面板(双缓冲)并更改其属性,如果我们在循环之前挂起面板并在循环时恢复面板布局结束,不应该所有这些控件(标签和按钮)"几乎立即"出现?这不会发生这种情况,您可以看到面板被填充.

知道为什么不发生这种情况吗?我知道很难在没有示例代码的情况下进行评估,但这也难以复制.我可以用相机制作一个视频,但相信我这个,它不是很快:)

c# performance gdi+ doublebuffered winforms

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

如何在IntelliJ 12中为查找用法设置默认范围?

经过长时间的Android开发中断后我回到了IntelliJ,所以我又习惯了.我遇到的问题是,例如,当你想要查看正在使用的类的位置时,你将把插入符号放在类声明中并cmdaltF7在Mac OS X上发布Find Usages,它返回来自mapping.txt的东西.和seeds.txt以及.java结果,甚至我可以设置默认值,通过执行shiftcmdaltF7和取消勾选:搜索文本出现,甚至将范围从Project Files更改为自定义范围(例如),当我再次调用" 查找用法",不会保存这些选项.

有没有人知道如何个性化Find Usages所以它更接近Eclipse会做什么?(即,找到真实的用法而不是文本搜索事件).

java settings android keyboard-shortcuts intellij-idea

22
推荐指数
2
解决办法
2509
查看次数

如果DLL的app.config应该在"主配置"中...我们如何处理DLL中的WCF引用?

好吧,这很简单,但从我所看到的......你只能使用某种Windows工作流将另一个配置包含到另一个配置中(我拒绝这样做).

这是交易:

MAINAPP.EXE引用一个假设的LIBRARY.DLL.

MAINAPP.EXE有自己的MAINAPP.EXE.config.

如果向LIBRARY.DLL添加"配置值"(从而在LIBRARY.DLL项目中创建app.config),即使将app.config复制到LIBRARY.DLL.config到正确的路径后,这些值也无法在运行时使用- 建造.

上述原因是即使引用的库也会从"mainapp.exe"配置中读取.

到现在为止还挺好".现在,当您添加WCF服务引用时,visual studio会使用绑定/端点/等创建或填充您的app.config.但是这被添加到你添加引用配置的项目中; 因此,你的Library.DLL.prj最终会得到一个不起作用的 app.config,因为它永远不会被读取,甚至也不会被复制到输出目录.现在您可能认为可以右键单击该app.config并将"copy always"设置为true.算了吧.这没有任何作用.(你可以谷歌那个).

因此,鉴于上述奇怪的情况,使用.NET 3.5项目的常规VS2008开发人员如何管理他添加到他的Business Layer dll的WCF服务引用?那个开发人员是否应该在每次服务更改或每次添加/删除一个服务器时,从他的DLL中的无用 app.config到Mainapp.exe.config文件的所有整个部分都是COPY和PASTE ?

wcf app-config .net-3.5 visual-studio-2008

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

在C#中从String中删除Newlines的最快方法是什么?

我有一个字符串,里面有一些Environment.Newline.我想从字符串中删除它们,而是用逗号替换Newline.

在您看来,使用C#.NET 2.0的最佳方法是什么?

.net c# string replace

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

使用来自C#的POST通过https发布

在用这个问题浪费了两天之后(并试图让它发挥作用),我决定退后一步并提出一个更基本的问题,因为显然有一些我不知道或者我做错了.

要求很简单,我需要在 C#上通过https发布HTTP帖子(传递几个值).

该网站(如果给出适当的值)将返回一些简单的html和响应代码.(我稍后会说明这些).

这真的简单的."webservice"有效.我有一个PHP示例,可以正常工作并成功连接到它.我也有一个Dephi"演示"应用程序(带有源代码)也可以使用.最后我有来自具有"服务"的公司的演示应用程序(二进制),当然也有效.

但我需要通过C#来做到这一点.这听起来如此简单,它无法正常工作.

出于测试目的,我创建了一个简单的控制台应用程序和一个简单的连接方法.我尝试了7种不同的方式来创建HTTP请求,或多或少相同的东西,不同的实现(使用WebClient,使用HttpWebRequest等).

每个方法都有效,除非 URI以"https"开头.

我得到一个webexception,说远程服务器返回404.我已经安装了Fiddler(由SO用户建议),并调查了一点流量.404是因为我传递了错误,因为正如我后面提到的,'服务'有效.我稍后会谈到提琴手的结果.

我必须POST数据的URL是:https://servicios.mensario.com/enviomasivo/apip/

这是POST数据:(值是假货)

usuario = SomeUser是否&釜= SomePassword&nserie = 01234567890123456789&版本= 01010000&operacion = 220

服务器可能会返回两/三行响应(抱歉西班牙语,但该公司来自西班牙).以下是可能响应的示例:

HTTP/1.1 200 OK
Content-Type: text/plain

01010000 100 BIEN
998
Run Code Online (Sandbox Code Playgroud)

这是另一个

HTTP/1.1 200 OK
Content-Type: text/plain

01010000 20 AUTENTIFICACION NEGATIVA
Ha habido un problema en la identificación ante el servidor. Corrija sus datos de autentificacion.
Run Code Online (Sandbox Code Playgroud)

第一个表示正常,第二个表示验证失败.

正如您所看到的,任务非常简单,只有它不起作用.如果我使用fiddler,我会发现连接中存在某种SSL内容,然后一切正常.但是,据我所知,.NET为我们处理所有这些事情(是的,我添加了回调以始终验证无效的证书).我不明白我做错了什么.我可以发布/发送电子邮件代码,但我想知道的很简单:

如何使用C#和"简单"HttpWebRequest对SSL进行POST,之后在字符串/数组中进行响应/无论处理什么?

相信我,当我说我一直在谷歌搜索和Stackoverflowing两天.我没有任何代理.连接通过我的路由器.标准端口.没有什么花哨.我的机器在VMWare虚拟机内部并且是Windows Vista,但鉴于示例应用程序(php,delphi,二进制)都没有问题,我看不出这是一个问题).

如果有人想看看它们,可以在这里找到不同的样本(没有二进制文件).

我很感激任何帮助.如果有人想尝试"真实"的用户名,我有一个演示用户,我可以通过你的用户/通行证进行测试.我只有 …

.net c# ssl post httpwebrequest

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