有没有人知道一个好的模态窗口控件类似于Javascript中使用的控件,但可用于具有透明背景的所有WinForms(C#).
Javascript中的示例 http://okonet.ru/projects/modalbox/
就像是
ModalCoolForm f = new ModalCoolForm();
f.ShowDialog(this);
Run Code Online (Sandbox Code Playgroud) 我的程序安装了Visual Studio安装项目.该程序在运行时会user.config在默认位置创建一个文件,因为我正在使用"设置".uninsalling时,如何让卸载程序删除该user.config文件?另外,如何让卸载程序删除文件夹%AppData%?
任何机构都可以建议我如何在我为我的应用程序创建的朋友列表之间创建聊天界面.
实际上想要创建一个聊天服务器.我的django模型中有一个朋友列表.如果一个人同时在线,那么他们就会互相聊天.为此目的,我必须创建一个套接字或有任何其他方法来做到这一点.
谢谢
我Model是一个泛型类,它包含一个(例如)Value属性,可以是int,float,string,bool等.所以很自然这个类代表了类似的东西Model<T>.为了集合Model<T>实现接口IModel,尽管IModel它本身没有任何内容.
我的ViewModel包含和实例,Model<T>它通过ViewModel构造函数传递.我仍然想知道TViewModel中的内容,所以当我暴露Model给View我时,我知道了Model埋藏Value属性的数据类型.ViewModel的类最终看起来如下所示:
class ViewModel<T>
{
private Model<T> _model;
public ViewModel(Model<T> model) { ....blah.... }
public T ModelsValue {get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这很好,但是有限.所以现在我需要公开的集合IModels与不同的Ts我View,所以我想以一个成立ObservableCollection的new ViewModel<T>s,以一个变化表IModels.问题是,我无法弄清楚如何获得T从Model<T>从IModel构建ViewModel<T>(Model<T>)在运行时.
在VS2010调试器中,我可以鼠标悬停任何IModel对象并Model<int>在运行时看到它的完整,所以我知道数据在那里.
有任何想法吗?
所以,我正在构建一个WPF应用程序,并在今天进行了测试部署,并发现它的表现非常糟糕.我很惊讶,因为我们在视觉效果或动画方面做得并不多.
我部署在两台机器上:运行应用程序所需的最快和最慢(最慢的PC具有Intel Celeron 1.80GHz和2GB RAM).该应用程序在较快的机器上运行得很好,但在较慢的机器上却不稳定.当我说"波涛汹涌"时,我的意思是光标跳过,甚至只是将它传递到有焦点的应用程序的任何打开的窗口.
我打开了"任务管理器性能"窗口,可以看到只要应用程序有焦点并且光标在其上移动,CPU使用率就会跳跃.如果我将焦点放在另一个(例如Excel)上,CPU使用率会在一秒后恢复.这发生在两台机器上,但是在较慢的机器上只有明显的波动.我只有非常有限的时间来修补部署机器,所以没有做很多详细的测试.
该应用程序在我的开发机器上运行良好,但我也看到CPU在那里飙升10%,只是将光标放在窗口上.
我从MS下载了WPF性能工具并且一直在修补它(在我的开发机器上).文档说明了Perforator工具中的"帧率"指标:
对于没有动画的应用程序,此值应接近0.
应用程序没有做任何繁重的动画,但当光标在任何窗口上时,帧速率保持在50附近.我测试过的屏幕在网格中有列标题"突出显示",滚动时会改变颜色和外观的按钮.即使在窗口的空白区域上移动鼠标也会导致相同的帧速率和CPU使用率(似乎与这些次要动画无关).
(另外,除了两个默认工具 - Perforator和Visual Profiler - 安装到WPF性能工具中之外,我无法弄清楚如何获得任何东西.这可能是一个单独的问题).
我也有Redgate的分析工具,但我不确定这是否可以解释渲染性能.
因此,我意识到在没有细节或示例代码(我无法发布)的情况下进行故障排除并不容易.我的问题是:
我正在阅读关于PHP的电子书,作者注意到while循环和for循环之间的区别在于for循环将计算它运行的次数.
所以拿这个:
<?php
for ($i = 1; $i < 10; $i = $i + 1) {
print "Number $i\n";
}
?>
Run Code Online (Sandbox Code Playgroud)
但这不会是一样的
<?php
$i = 1;
while ($i < 10) {
$i = $i + 1;
print "Number $i\n";
}
?>
Run Code Online (Sandbox Code Playgroud)
或者他没有指出其他一些差异?(除了使用while循环时,您不确定条件将保持多长时间,例如从数据库中选择行)
我的意思是,如果这是唯一的区别,我不能不使用for循环并使用while循环吗?
我有一个ListView,我正在使用DataPager进行分页.我想在Page_Load上设置寻呼机的初始页面.我已经尝试了DataPager.SetPageProperties方法,但它没有做我需要的.以下是我调用此方法的方法:
dataPager.SetPageProperties(3, dataPager.TotalRowCount, false);
Run Code Online (Sandbox Code Playgroud)
上面的行修剪数据源以从第三个项开始,并且分页仍然从1开始.这不是我想要的.我想保留整个项目列表,然后跳转到列表中的特定页面.
我应该使用DataPager和/或ListView的另一个属性和/或方法吗?
任何帮助将不胜感激.
谢谢!
我们正在为一些小型企业部署产品.它基本上是使用Tomcat的SSL上的RESTful API.它安装在小型企业的服务器上,可通过iPhone或其他便携式设备访问.因此,连接到服务器的设备可能来自任意数量的IP地址.
问题出在安装上.当我们安装这项服务时,在进行端口转发时似乎总是成为问题,因此外部世界可以访问tomcat.似乎大部分时间主人都不知道路由器密码等等.
我正在尝试研究其他方法来实现这一目标.我想出了以下内容,并希望听到有关该主题的其他想法.
设置从每个客户端办公室到中央服务器的SSH隧道.基本上,远程设备将连接到端口上的中央服务器,并且该流量将通过隧道传输回办公室中的Tomcat.看起来有点冗余,有SSH和SSL,但实际上没有其他办法可以实现它,因为端到端我需要SSL(从设备到办公室).这里不确定性能影响,但我知道它会起作用.需要监视隧道并在完成后将其恢复,需要处理SSH密钥交换等.
设置uPNP尝试为我配置孔.可能大部分时间都有效,但不保证打开uPNP.可能是一个很好的下一步.
想出一些NAT横向方案.我只是不熟悉这些并且不确定它们是如何工作的.我们可以访问集中式服务器,如果这样可以更容易地进行身份验证.
我还应该注意什么来实现这一目标?
我试图重新连接到我已断开连接的套接字但由于某种原因它不会允许它,即使我使用参数"reuseSocket"设置为true调用Disconnect方法.
_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
_socket.Connect(ipAddress, port);
//...receive data
_socket.Disconnect(true); //reuseSocket = true
//...wait
_socket.Connect(ipAddress, port); //throws an InvalidOperationException:
Run Code Online (Sandbox Code Playgroud)
套接字断开连接后,您只能异步重新连接,并且只能连接到不同的EndPoint.必须在线程上调用BeginConnect,该线程在操作完成之前不会退出.
我究竟做错了什么?
c# ×4
php ×2
wpf ×2
.net ×1
asp.net ×1
chat ×1
datapager ×1
django ×1
for-loop ×1
generics ×1
listview ×1
modal-dialog ×1
mvvm ×1
networking ×1
optimization ×1
paging ×1
performance ×1
regex ×1
rendering ×1
rest ×1
sockets ×1
uninstall ×1
web-services ×1
while-loop ×1
windows ×1
winforms ×1