对于我的应用程序,我想使用所有内置的操作可能性,例如缩放.但是如果用户在屏幕上按下3个手指,我想显示特定的UI元素.那么检查用户是否同时按下3个手指并且屏幕上彼此相邻的最佳方法是什么?(不禁用内置操作可能性).
我的第一种方法是在我的布局的顶部Grid元素上注册TouchDown事件.在事件处理程序中,我得到了联系人.但那里该怎么办?
只需检查联系人是否是指纹,将其存储在列表中,并检查列表是否已包含两个类似的联系人?
还是有更性感的解决方案?
谢谢!
编辑:
根据答案我写了两个方法:
private void OnContactDown(object sender, ContactEventArgs e)
{
if (this.ContactsOver.Count == 3)
{
Console.WriteLine("3 contacts down. Check proximity");
if (areNear(this.ContactsOver))
{
Console.WriteLine("3 fingers down!");
}
}
}
private Boolean areNear(ReadOnlyContactCollection contacts)
{
if ( Math.Abs(contacts.ElementAt(0).GetCenterPosition(this).X - contacts.ElementAt(1).GetCenterPosition(this).X) < 100 &&
Math.Abs(contacts.ElementAt(0).GetCenterPosition(this).Y - contacts.ElementAt(1).GetCenterPosition(this).Y) < 100 &&
Math.Abs(contacts.ElementAt(1).GetCenterPosition(this).X - contacts.ElementAt(2).GetCenterPosition(this).X) < 100 &&
Math.Abs(contacts.ElementAt(1).GetCenterPosition(this).Y - contacts.ElementAt(2).GetCenterPosition(this).Y) < 100 &&
Math.Abs(contacts.ElementAt(0).GetCenterPosition(this).X - contacts.ElementAt(2).GetCenterPosition(this).X) < 100 &&
Math.Abs(contacts.ElementAt(0).GetCenterPosition(this).Y - contacts.ElementAt(2).GetCenterPosition(this).Y) < 100)
{
return true;
}
else …Run Code Online (Sandbox Code Playgroud) 在Fredrik的博客文章中,他有一个C#if语句的例子
@if (WebSecurity.IsAuthenticated) {
<li><a href="/user/login">Log in</a></li>
} else {
<li><a href="/user/logout">Log out</a></li>
}
Run Code Online (Sandbox Code Playgroud)
但在VB中我似乎无法弄清楚如何做同样的事情
@If (HttpContext.Current.User.Identity.IsAuthenticated) Then
<div id="dialog-confirm" title="Log Out">
<div class="alert" title="Alert">
</div>
Are you sure?</div>
End If
Run Code Online (Sandbox Code Playgroud)
这个节目表明我的内部HTML标记是错误的.
基本上以下是有效的
@If (HttpContext.Current.User.Identity.IsAuthenticated) Then
End If
Run Code Online (Sandbox Code Playgroud)
但if语句中的任何内容都被视为"代码"而不是"标记".我需要的是能够将标记放在那里.
有谁知道如何在Razor VB中做一个正确的if语句?
我是键盘快捷键的忠实粉丝.如果某些功能或操作没有快捷方式,我倾向于编写一个小程序并附加Ctrl+ Alt+ [键]快捷方式.
昨天在使用Visual Studio进行编码时,我开始考虑他们如何分配快捷方式.有大量的命令,但大多数命令都很直观,而且没有一个命令与其他系统范围的组合重叠.唯一的例外是Ctrl+ W并且它激怒了我的地狱,它默认不会关闭活动标签.
在为自己的程序分配键盘快捷键时应该记住哪些最佳实践?
除特定功能外,不应使用的常见和"保留"组合是什么(eq Ctrl+ S,Ctrl+ W....)
在小型应用程序中,我认为最好将其Ctrl用作修饰键,但在较大的应用程序中呢?是否应该有两个修饰键(Shift/ Alt?)或在Visual Studio中使用?应该Shift只用于反转功能(Ctrl+ Shift+ Tab,向后滚动标签)?
或者如何在托盘中最小化程序运行,或者根本没有GUI.Windows-key应该用在那个组合中吗?
我正在使用Emacs 23.2.这是我加载语义的方式:
(setq semantic-default-submodes '(global-semantic-idle-scheduler-mode
global-semanticdb-minor-mode
global-semantic-idle-summary-mode
global-semantic-mru-bookmark-mode))
(semantic-mode 1)
Run Code Online (Sandbox Code Playgroud)
因此,如果我创建一个简单的java文件并访问它,我将获得本地定义的方法和类的代码完成.但我无法弄清楚如何使语义识别jdk库.例如,如果我尝试semantic-ia-complete-symbol使用String变量,我会得到Cannot find types for 'String blah'.
有谁知道如何将jdk库加载到semanticdb中,因此可以使用像String这样的标准对象类型的代码完成?
我的问题有点类似于以下帖子..
但是在我的情况下,一旦我确定登录表单中没有验证错误并且用户的登录信息与数据库的登录信息匹配,我就选择启动会话.这是以下代码:
登录页面(在任何HTML之前)
session_name('username');
session_name('ip');
session_name('start');
session_start();
Run Code Online (Sandbox Code Playgroud)
Login.php片段(在html的正文中)
} else {
$user = $_POST['username'];
$userpass = md5($_POST['password']);
$login_results = statement("select username, password from `$admin` where username='$user' and password='$userpass'");
if (mysql_num_rows($login_results)!= 1) {
$errmsg = "<span id='error'>Login failed: Username or password not on file</span>";
}else {
$_SESSION['username'] = "$user";
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
header("Location: index.php");
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果你查看上面代码的else块我正在验证登录,如果它好,我想分配会话变量并转到我的索引页面.从一开始就有这个代码:
//Session Timeout Script -- used to determine the amount of time the user has been idle. If it the …Run Code Online (Sandbox Code Playgroud) 有没有办法在使用主布局和调用节的页面上使用字符串?
所以不是这样的:
@section SomeSection
Run Code Online (Sandbox Code Playgroud)
我能做到吗?
@section "SomeString"
Run Code Online (Sandbox Code Playgroud)
或更好
@section SomeClass.SomeConstantString
Run Code Online (Sandbox Code Playgroud)
原因是什么?这样我就可以在母版页上使用一个常量字符串作为节名,并在部分页面上使用相同的常量字符串.
@RenderSection(eClass.SomeConstantString, required:false)
Run Code Online (Sandbox Code Playgroud)
我真的希望有办法做到这一点,否则它似乎是一个整体问题.
如何使用C#创建真正的函数管道?我有一些想法如下,但它不是一个真正的管道
public static IEnumerable<T> ForEachPipeline<T>(this IEnumerable<T> source, params Func<T, T>[] pipeline)
{
foreach (var element in source) {
yield return ExecutePipeline(element, pipeline);
}
}
private static T ExecutePipeline<T>(T element, IEnumerable<Func<T, T>> jobs)
{
var arg = element;
T result = default(T);
foreach (var job in jobs) {
result = job.Invoke(arg);
arg = result;
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,每个元素IEnumerable<T>只有在前一个元素完成执行所有函数(即退出管道)之后才能进入管道,但是根据定义,如果element1完成执行func1并开始执行func2,到那时element2应该开始执行func1并且这样就维持了管道中数据的持续流动.
这种情况是否可以在C#中实现?如果可能的话请给我一些示例代码.
我看到很多人在理解右值参考时遇到了问题."普通"C++代码(例如,使用标准库,但不实现它)是否需要在新标准出现时了解rvalue引用,或者人/代码是否只是假装rvalue引用不存在?rvalue引用主要涉及库实现者还是所有程序员?
我有一个字符串,其中"LOCAL"一词多次出现.我使用该find()函数来搜索这个单词,但它也返回另一个单词"Locally".我怎样才能准确匹配"本地"一词?
有没有办法在eclipse中保持项目开放而不构建它?
我在eclipse中有一些项目由于错误而无法构建.我只是想在编辑和构建我的主项目时使用它们作为参考,但是我无法运行我的main,因为eclipse抱怨其他项目的所有错误(我的项目不依赖于它们)