我想在WinForm中显示手机摄像头拍摄控件的图像.我的想法是我的应用程序像摄像机程序一样工作.我想要显示图像,如果用户要拍照.
我怎样才能做到这一点?我能这样做吗?
如果您需要更多细节,请问我.
谢谢!
我正在开发一个紧凑的框架应用程序,需要提高性能.该应用程序当前通过将对象序列化为XML并将其存储在数据库中而脱机工作.使用分析工具,我可以看到这是一个相当大的开销,减慢了应用程序.我想如果我切换到二进制序列化,性能会增加,但因为在紧凑的框架中不支持,我看了protobuf-net.序列化似乎更快,但反序列化要慢得多,并且应用程序比串行化更多地反序列化.
二进制序列化应该更快,如果是这样,我可以做些什么来加快性能?这是我如何使用XML和二进制文件的片段:
XML序列化:
public string Serialize(T obj)
{
UTF8Encoding encoding = new UTF8Encoding();
XmlSerializer serializer = new XmlSerializer(typeof(T));
MemoryStream stream = new MemoryStream();
XmlTextWriter writer = new XmlTextWriter(stream, Encoding.UTF8);
serializer.Serialize(stream, obj);
stream = (MemoryStream)writer.BaseStream;
return encoding.GetString(stream.ToArray(), 0, Convert.ToInt32(stream.Length));
}
public T Deserialize(string xml)
{
UTF8Encoding encoding = new UTF8Encoding();
XmlSerializer serializer = new XmlSerializer(typeof(T));
MemoryStream stream = new MemoryStream(encoding.GetBytes(xml));
return (T)serializer.Deserialize(stream);
}
Run Code Online (Sandbox Code Playgroud)
Protobuf-net二进制序列化:
public byte[] Serialize(T obj)
{
byte[] raw;
using (MemoryStream memoryStream = new MemoryStream())
{
Serializer.Serialize(memoryStream, obj);
raw …Run Code Online (Sandbox Code Playgroud) 所以我正在研究我的DI/IoC容器OpenNETCF.IoC,我有一个(合理的)功能请求,为容器集合中的IDisposable项添加某种形式的生命周期管理.
我当前的想法是,因为我不能查询一个对象以查看它是否已被处理,并且我无法获得一个事件,因为它被处理掉了,我必须为开发人员想要的对象创建某种形式的包装器要管理的框架.
现在可以使用AddNew添加对象(为简单起见,我们假设只有一个重载,并且没有Add):
public TTypeToBuild AddNew<TTypeToBuild>() { ... }
Run Code Online (Sandbox Code Playgroud)
我正在考虑的是添加一种新方法(很好的一组,但你得到的图片):
public DisposableWrappedObject<IDisposable> AddNewDisposable<TTypeToBuild>()
where TTypeToBuild : class, IDisposable
{
...
}
Run Code Online (Sandbox Code Playgroud)
DisposableWrappedObject的位置如下所示:
public class DisposableWrappedObject<T>
where T : class, IDisposable
{
public bool Disposed { get; private set; }
public T Instance { get; private set; }
internal event EventHandler<GenericEventArgs<IDisposable>> Disposing;
internal DisposableWrappedObject(T disposableObject)
{
if (disposableObject == null) throw new ArgumentNullException();
Instance = disposableObject;
}
~DisposableWrappedObject()
{
Dispose(false);
}
public void Dispose()
{
Dispose(true);
}
protected virtual …Run Code Online (Sandbox Code Playgroud) c# dependency-injection compact-framework ioc-container opennetcf.ioc
在Compact Framework中删除文件的readonly属性的首选方法是什么,因为我们没有File :: SetAttributes?
我对Windows Mobile(使用C#和紧凑框架)开发有点新,所以我有点不确定如何做到这一点.用户必须以类似向导的方式浏览多页信息.一开始就有一个登录窗口.
我将如何实现这一目标?我是否会为每个页面设置不同的用户控件并根据请求创建/显示和销毁/隐藏它们?或者我是否需要创建不同的表单并以某种方式显示这些?
编辑(来自与OP不同的用户)
由于我还没有找到一个很好的解决方案,一些答案的链接在Windows Mobile 6.5中无法使用我开始赏金
这看起来很有前景,但可以为移动6.5而构建
http://weblogs.asp.net/justin_rogers/articles/117859.aspx
http://www.codeproject.com/KB/dialog/WizardForm.aspx
http://www.codeproject.com/KB/miscctrl/DesignTimeWizard.aspx
http://winformswizard.codeplex.com/
http://www.differentpla.net/content/2005/02/implementing-wizard-c(与上述相同,但早期的工作)
我们的要求是能够将我们的DLL与ClickOnce集成.Dotfuscator很好地完成了混淆工作,但是无法在客户端使用ClickOnce部署混淆的DLL.在我们这边,我们可以完美地处理它.此外,混淆的程序集有时会崩溃我们的.NET CF应用程序.事实证明,这是一个创建临时源并在使用VS编译之前对其进行模糊处理的解决方案.这可确保已编译的程序集可与ClickOnce集成,并与.NET CF完全兼容.混淆C#SOURCE CODE(不是程序集)的最佳工具是什么?
我有一个非托管的c ++ DLL,我需要从Windows Mobile C#应用程序调用.
我有C#包装器,它在桌面上很好用.我可以从C#桌面程序调用DLL函数并传递字符串没有问题.
但是,当我编译lib和移动平台的包装器时,我在DllImport行中收到错误,指出CharSet.ANSI无法识别.我允许写的唯一选项是CharSet.Auto和CharSet.Unicode.
问题在于,无论此设置如何,在c ++函数中接收的字符串都是宽字符串,而不是它们所期望的普通char*字符串.
我们可以使用wcstombs()来翻译每个c ++函数开头的所有字符串,但我宁愿不修改lib到这样的程度......
有没有办法修复与.NET Compact Framework一起使用的C#和C之间的编组?
如何在用户单击DataGrid中的单元格时,选择整个行而不是仅选择单元格.
好吧,我尝试过最后几个小时而且我放弃了:我为移动设备开发(在Unitech HT660上赢得CE)并且发生了一件奇怪的事情:我尝试在我的PC上与服务进行通信而我正在使用TCPClient为了它.
除了一个大问题之外,这很好用:一旦我拔掉USB-Cable,我就用来在程序启动时从VS复制文件TCPClient抛出一个SocketException,因为目标机器主动拒绝它,所以不能建立套接字连接(不是这样,防火墙已关闭,未安装第三方且服务正在侦听)
并且它变得更奇怪:如果电缆插入并且我在程序连接后将其移除,一切工作都很好,我可以在没有电缆的情况下发送和接收数据,我可以在没有电缆的情况下连接.
顺便说一句:与MySQL .NET Connector的MySQLConnection相同.它适用于电缆,但如果在没有建立连接的情况下将其移除,则无法建立连接.
对此有什么想法吗?
提前致谢!
PS:有一件事我忘了提到:我使用无线连接到我的网络,IE以及使用服务和mysql数据库ping计算机就可以了.
我正在尝试设置数据网格中列的宽度.我使用Compact Framework 2.0和C#
我试过这个,但它给了我一个"out of bonds"错误信息:
foreach (DataGridColumnStyle vColumnStyle in dataGrid1.TableStyles[0].GridColumnStyles)
{
vColumnStyle.Width = 100;
}
Run Code Online (Sandbox Code Playgroud)
以下是使用数据表填充数据网格的代码(仅在我尝试设置列宽时失败):
void FillData()
{
// 1
// Open connection
string conString = "Data Source=\\Program Files\\smartdeviceproject2\\repartocrack.sdf";
using (SqlCeConnection c = new SqlCeConnection(conString))
{
c.Open();
// 2
// Create new DataAdapter
using (SqlCeDataAdapter a = new SqlCeDataAdapter(
"SELECT codbultocomp, nombre, estado FROM envios INNER JOIN tiendas ON envios.codigodestino = tiendas.codigodestino", c))
{
// 3
// Use DataAdapter to fill DataTable
DataTable t = new DataTable();
a.Fill(t); …Run Code Online (Sandbox Code Playgroud)