我知道如何用几行XAML创建一个WPF字体选择器,绑定到Fonts.SystemFontFamilies(感谢Norris Cheng的优秀博客文章),但我无法弄清楚如何过滤掉所有国际和其他非罗马字母字体家庭.我的用户不太可能需要"蒙Baiti","微软维吾尔",甚至是"Webdings",当那些在名单这使得他们更难找到他们的字体不想要的.
SystemFontFamilies我可以用来将非符号罗马字母字体系列与其他字体系列分开,是否可以在对象上找到任何属性?
编辑:我想要使用的信息可以在Windows 7字体控制面板的"Designed for"字段中找到.此字段中的此字符串包含用于拉丁字母应用程序的字体的"拉丁语",用于"国际"字体的其他语言名称(例如,"Mongolian Baiti"是"蒙古语"),以及用于Wingdings等字体的"符号"."类别"字段对于将"显示"字体与"文本"字体分开也很有用.不幸的是,我无法弄清楚从代码中获取此信息的任何方法,我甚至无法弄清楚它在OpenType规范中的位置.我的猜测是涉及OpenType 脚本标签或语言标签.
我需要一个Dictionary<string,object>从DataRow生成的.我目前有一些工作,但我做得太多而且没有使用.ToDictionary()扩展方法.
有人可以请教我如何成功完成这项工作吗?
这是我失败的尝试:
var dataDictionary = dataTable.Select(acn + "=" + accountNumber).ToDictionary(key => key.Table.Columns);
Run Code Online (Sandbox Code Playgroud)
这会返回一个KeyValuePair<DataColumnCollection, DataRow>,但同样,我需要一个Dictionary<string,object>
再次感谢您!
F#immutable类型如何与C#接口.我刚刚开始学习F#,我想把它与我的一些C#代码混合在一起,但我希望我的F#类是不可变的.
假设我们在F#中创建了一个Vector类.Vector.X和Vector.Y应该是可重新赋值的,但只返回一个新的Vector类.在C#中,这需要花费大量的工作量.WithX(float x)克隆现有对象并返回一个新对象.在F#中有一种简单的方法吗?
我一直在寻找一些时间,我似乎无法找到任何关于此的文档.所以任何帮助都会很棒.
最后,如果我将这个类导入C#,它的界面会是什么样的?F#代码是否会限制我做一些愚蠢的事情Vector.X = 10?
以下动画应该做什么?
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:toDegrees="360"
android:pivotX="50%"
android:pivotY="50%"
android:interpolator="@android:anim/linear_interpolator"
android:duration="1000" />
Run Code Online (Sandbox Code Playgroud)
很容易.它应代表围绕中心的顺时针旋转.只需旋转一下,然后停下来.对?
当我将它应用于View时,它确实......
但是当我为活动转换设置动画时,会发生完全不同的事情.活动开始逆时针旋转,但同时它飞离屏幕的右上角.然后它返回,仍然逆时针旋转,现在倒置,然后飞离屏幕的左下角.最后,它回来并直立结束旋转.
不管是什么我指定pivotX和pivotY,行为始终是相同的.它们似乎完全被忽略了.无论哪种方式,事情肯定不会围绕任何固定的枢轴旋转!
这是什么废话?这是一个错误吗?
为了完整起见,我将此动画保存为res/anim/spin.xml,并按如下方式调用它:
startActivity(intent);
overridePendingTransition(R.anim.spin, R.anim.spin);
Run Code Online (Sandbox Code Playgroud)
(对于in和out使用相同的动画没有任何意义,但这是最小的例子.)
我已经整理了一个最小的Android项目来演示这个问题.主要活动如下:
package com.example.animtest;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
public class MainActivity extends Activity {
private View rootView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
rootView = getLayoutInflater().inflate(R.layout.main, null);
setContentView(rootView);
}
public void animateRootView(View view) {
Animation spin = AnimationUtils.loadAnimation(getApplicationContext(), …Run Code Online (Sandbox Code Playgroud) 我有一个索引页面,它将用户发送到单独的浏览器选项卡上的编辑产品页面。
对于编辑的每个产品,索引都会重写 Session["ProductID"]。
然后,编辑页面包含以下代码,以便为该选项卡和产品提供唯一标识符:
if (!IsPostBack) //first time page load
{
Random R = new Random(DateTime.Now.Millisecond + DateTime.Now.Second * 1000 + DateTime.Now.Minute * 60000 + DateTime.Now.Minute * 3600000);
PageID.Value = R.Next().ToString();
Session[PageID.Value + "ProductID"] = Session["ProductID"];
}
Run Code Online (Sandbox Code Playgroud)
这是有效的,当同一用户打开多个选项卡时,我只在代码中引用 Session[PageID.Value + "ProductID"],以便我始终拥有正确的 ID。(我正在一个受信任的环境中工作,这是针对内部网的,因此我不太关心安全级别)。
如果用户通过按 F5 键刷新页面,就会出现我的问题。此时 Session[PageID.Value + "ProductID"] 获取他打开的最后一个产品的 Session["ProductID"]。
例如:
用户 1 在选项卡 1 中打开产品 1
用户 1 在选项卡 2 中打开产品 2
每当他们正常使用该工具时,一切都会正常。但是如果:
产品 1 页面上的用户 1 点击刷新按钮 (F5),产品 1 页面变为产品 2 页面
有没有办法从“第一次加载/从另一个页面重定向”中检测页面刷新,以便我可以告诉我的页面不要更新我的会话[PageID.Value +“ProductID”]?
我正在构建一个html页面.我想做一个快速的1行测试,如果用户启用了javascript,则说"javascript on",否则说"javascript off"只是为了让他们知道.
我怎样才能做到这一点?
你知道怎么print_r接受一个可选的第二个参数,如果设置为true将返回结果而不是打印它?
我希望include接受第二个参数,它将以相同的方式工作.
它不是那么可用的替代品是什么?如何将文件包含到变量中?
什么是使ActionMailer在Rails 3中通过Amazon SES发送邮件的最佳方式?
编辑:
这是一个宝石:
gem install amazon-ses-mailer
Run Code Online (Sandbox Code Playgroud)
如果以下方法是线程安全的,请有人告诉我.另外,请假设对_cache.GetOrCreate(...)的调用是线程安全的.此方法是创建或更新区域(字典)的应用程序中的唯一位置.包含此方法的类是单例,因此多个线程将访问它.
public IEnumerable<string> GetReportLookupItems<T>(string cacheKey, Func<IEnumerable<string>> factory)
{
Dictionary<string, IEnumerable<string>> region = _cache.GetOrCreate("Cache-Region:LookupItems", () => new Dictionary<string, IEnumerable<string>>());
IEnumerable<string> items;
if (!region.TryGetValue(cacheKey, out items))
{
region[cacheKey] = items = factory();
}
return items;
}
Run Code Online (Sandbox Code Playgroud) 我们在Web上的互操作性方面经常遇到一些问题.浏览器供应商的这些问题之一是错误拼写的ConnectionHTTP标头.这两种形式给出了最常见的错误.
nnCoection:
Cneonction:
Run Code Online (Sandbox Code Playgroud)
有一些关于此的文章,包括Fun with HTTP headers.通常它会在一段时间内发生,然后消失.似乎其中一些是由负载平衡器创建的,例如:NetScaler Appliance.
您是否知道造成这些问题的任何其他硬件或软件实例?
更新此处的一个示例,其中一个站点没有发回好的ConnectionHTTP标头.
curl -sI ehg-nokiafin.hitbox.com
HTTP/1.1 200 OK
Date: Tue, 25 Jan 2011 20:35:45 GMT
Server: Hitbox Gateway 9.3.6-rc1
P3P: policyref="/w3c/p3p.xml", CP="NOI DSP LAW NID PSA ADM OUR IND NAV COM"
Cneonction: close
Pragma: no-cache
Cache-Control: max-age=0, private, proxy-revalidate
Expires: Tue, 25 Jan 2011 20:35:46 GMT
Content-Type: text/plain
Content-Length: 23
Run Code Online (Sandbox Code Playgroud)
更新2011-01-26
在论坛亚马逊AWS左右,有一个线程有关nnCoection.评论说:
仅供参考,它错误拼写单词连接的原因是互联网校验和(简单的总和)仍然加起来,这样变化可以在数据包级别发生.如果它完全删除了标题,它将不得不停止转发响应,直到标题被完全读取,因此它可以重写标题,重新计算校验和然后发送它.
同
sum(ord(c) for c in "Connection") …Run Code Online (Sandbox Code Playgroud)