我正在寻找创建一个图像基表,然后比较任何新图像,以确定新图像是否是基本的精确(或接近)副本.
例如:如果您想减少100次相同图像的存储空间,您可以存储它的一个副本并提供它的参考链接.输入新图像时,您想要与现有图像进行比较,以确保它不是重复的...想法?
我的一个想法是缩小到一个小缩略图,然后随机选择100个像素位置并进行比较.
我想编写一个ViewModel,它始终知道View中某些只读依赖项属性的当前状态.
具体来说,我的GUI包含一个FlowDocumentPageViewer,它一次从FlowDocument显示一个页面.FlowDocumentPageViewer公开了两个名为CanGoToPreviousPage和CanGoToNextPage的只读依赖项属性.我希望我的ViewModel始终知道这两个View属性的值.
我想我可以使用OneWayToSource数据绑定来做到这一点:
<FlowDocumentPageViewer
CanGoToNextPage="{Binding NextPageAvailable, Mode=OneWayToSource}" ...>
Run Code Online (Sandbox Code Playgroud)
如果这是允许的,那将是完美的:每当FlowDocumentPageViewer的CanGoToNextPage属性发生更改时,新值将被推送到ViewModel的NextPageAvailable属性,这正是我想要的.
不幸的是,这不编译:我收到一个错误,说'CanGoToPreviousPage'属性是只读的,不能从标记设置.显然只读属性不支持任何类型的数据绑定,甚至不支持与该属性相关的只读数据绑定.
我可以让我的ViewModel的属性为DependencyProperties,并使OneWay绑定以另一种方式运行,但我并不为关注点分离违规而疯狂(ViewModel需要对View的引用,MVVM数据绑定应该避免).
FlowDocumentPageViewer不公开CanGoToNextPageChanged事件,我不知道从DependencyProperty获取更改通知的任何好方法,没有创建另一个DependencyProperty来绑定它,这在这里看起来有点过分.
如何让ViewModel了解视图的只读属性的更改?
我正试图让Jon Skeet(以及其他人)使用Noda Time框架.
我正试图现在存储当前(即时).Instant是从长时间刻度创建的,但是现在的Ticks数量是多少呢?
是吗:
Instant now = new Instant(DateTime.Now.ToUniversalTime().Ticks);
Run Code Online (Sandbox Code Playgroud)
还是?
Instant now = Instant.FromDateTimeUtc(DateTime.Now.ToUniversalTime());
Run Code Online (Sandbox Code Playgroud)
它们是等价的,我甚至做得对吗?
PS,如果Jon回答这个问题 - 我想提出一个Instant.Now属性.
PS2我知道标题包含一个标签,但它不会让我有一个简短的"Instant.Now"标题.
我有一个XML文件,我试图从这里读取,并具有以下代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.IO;
namespace XML
{
class Program
{
static void Main(string[] args)
{
XmlTextReader textReader = new XmlTextReader("secLendingXML.cfm.xml");
while (textReader.Read())
{
switch (textReader.NodeType)
{
case XmlNodeType.Element:
Console.WriteLine(textReader.Name);
Console.WriteLine(textReader.Value);
break;
case XmlNodeType.Text:
Console.WriteLine(textReader.Value);
break;
case XmlNodeType.XmlDeclaration:
case XmlNodeType.ProcessingInstruction:
Console.WriteLine(textReader.Name + " " + textReader.Value);
break;
case XmlNodeType.Comment:
Console.WriteLine(textReader.Value);
break;
case XmlNodeType.EndElement:
break;
}
}
Console.ReadLine();
}
}
}
Run Code Online (Sandbox Code Playgroud)
代码在正在读取节点并返回名称的意义上正常工作.但是,问题是我正在尝试检索节点内的数据.换句话说,当它在测试部分之后读取第一部分时,它将显示为:
slnc:DataSet
slnc:Group
slnc:Section
slnc:ActualAvailableToBorrow
*** here ***
slnc:oustandingLoans
Run Code Online (Sandbox Code Playgroud)
这是我想的TextReader将在节点内像阅读下面的值 …
有一段时间我现在使用以下Win32代码隐藏桌面(隐藏所有桌面图标).以下是我的Win32_Window类,因为桌面只是一个窗口.
public bool Visible
{
get { return IsWindowVisible(Handle); }
set
{
ShowWindow(Handle, value ? ShowWindowConsts.SW_SHOW :
ShowWindowConsts.SW_HIDE);
}
}
Run Code Online (Sandbox Code Playgroud)
使用Windows 8,上面不仅隐藏了桌面,而且使它完全空白.现在我认为这可以被认为是正常的,因为命令是隐藏的,但到目前为止还没有问题,因为桌面的背景图像仍然可见(这是意图).
我试过这个来切换图标:https://stackoverflow.com/a/6403014/353147但它在Windows 8中不起作用.
有人找到了解决方案吗?
我已经好好Screen.PrimaryScreen.Bounds.Size待了一段时间,但在连接到我的大屏幕电视的Windows7电脑上,它给了我不正确的价值.
我在其他地方读过尝试,SystemInformation.PrimaryMonitorSize但是给出了相同的值.
当我右键单击桌面以获得屏幕分辨率时,它说1920x1080.以上两个给了我1280x720.
我也试过WPF版本:
var w = System.Windows.SystemParameters.PrimaryScreenWidth;
var h = System.Windows.SystemParameters.PrimaryScreenHeight;
MessageBox.Show(new Size((int)w, (int)h).ToString());
Run Code Online (Sandbox Code Playgroud)
显示尺寸已通过(右键单击桌面)Personalize > Desktop选项更改为150%(因为屏幕为60"并且您坐得很远).
如何检测这个,以便从上面返回的值可以调整?
注意:我已经发现如何通过右键单击可执行文件来解决这个问题并调整兼容性以禁用DPI虚拟化,但我仍然需要一个编程解决方案,所以我不必让用户自己调整它:请参阅 - http: //msdn.microsoft.com/en-us/library/dd464660(VS.85).aspx#dpi_virtualization
我有一个sqlite数据库,我想使用数据库的密码从我的C#程序连接.我正在使用Navicat,我用密码"test"设置加密数据库文件,然后通过代码我的连接字符串是:
_connection = new SQLiteConnection("Data Source=MedExpress.db;Version=3;Password=\"test\";");
Run Code Online (Sandbox Code Playgroud)
要么
_connection = new SQLiteConnection("Data Source=MedExpress.db;Version=3;Password=test;");
Run Code Online (Sandbox Code Playgroud)
但这不起作用.
错误是: File opened that is not a database file
file is encrypted or is not a database
我可以没有像这样的密码连接到数据库:
_connection = new SQLiteConnection("Data Source=MedExpress.db;Version=3;");
Run Code Online (Sandbox Code Playgroud)
我的问题是如何设置sqlite数据库的密码并使用C#程序连接 System.Data.SQLite
从Xamarin.com上的示例中,您可以构建基本M.T. Dialog应用程序,但是如何构建真实应用程序?
你呢:
1)从那里创建一个单独的DialogViewController树view/RootElement或者,
2)DialogViewController为每个视图创建一个UINavigationController并根据需要使用并推送它?
根据你的答案,更好的反应是如何?我已经构建了示例任务应用程序,所以我理解向表中添加元素,单击它以转到"下一个"视图进行编辑,但是如何单击以进行非编辑?如果答案是1号,如何点击按钮,进入下一个视图?
修订:
可能没有一个正确的答案,但我想出来的似乎对我们有用.上面的数字2是所选择的,下面是当前存在的代码的示例.我们所做的是创建一个导航控制器,AppDelegate并在整个应用程序中提供对它的访问,如下所示:
public partial class AppDelegate : UIApplicationDelegate
{
public UIWindow window { get; private set; }
//< There's a Window property/field which we chose not to bother with
public static AppDelegate Current { get; private set; }
public UINavigationController NavController { get; private set; }
public override bool FinishedLaunching (UIApplication app, NSDictionary options)
{
Current = this;
window …Run Code Online (Sandbox Code Playgroud) uinavigationcontroller xamarin.ios monotouch.dialog dialogviewcontroller
我刚刚使用了Visual-Studio 2012 Professional并使用了Entity-Framework(5.0)设计器.我一直在尝试将属性转换为Enum,根据此Microsoft视频,我右键单击属性并选择Convert to Enum(2:06) - 在我的上下文菜单中没有转换选项.
在这里,我试图将角色转换为枚举.我已将Role设置为Int32.

我究竟做错了什么?
我正试图让Jon Skeet(以及其他人)使用Noda Time框架.
如何存储DateTimeZone并从数据库中检索它.我认为Id属性值可能是设置为数据库的值,但是如何从Id创建DateTimeZone,因为DateTimeZone是一个抽象类?