如何将Height
C#代码中WPF控件的属性值设置为" Auto
"?
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="Auto" />
<RowDefinition />
<RowDefinition Height="Auto" />
<RowDefinition />
<RowDefinition Height="Auto" />
<RowDefinition />
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
Run Code Online (Sandbox Code Playgroud)
我想在后面的代码中重现此行为.有任何想法吗?
我需要构建一个看起来与此类似的WPF控件: alt text http://img251.imageshack.us/img251/6857/circle.png
每种颜色应该可点击和调整大小(或可选择).
此控件将用于设置一天中的小时模式.我已经考虑过将24个按钮排成一个圆圈:
alt text http://img684.imageshack.us/img684/2184/buttonsk.png
另一个想法是绘制一个完整的圆并计算用户鼠标点击选择的位置,并绘制几个圆圈来表示数据.
关于如何构建这个的任何其他/更好的想法?(请原谅我糟糕的画作).
我正在玩MSIL反编译器 - ILDASM,我试图反编译一个简单的.NET方法.
操作码看起来像这样:
.method private hidebysig static int32 Add(int32 a,
int32 b) cil managed
{
// Code size 18 (0x12)
.maxstack 2
.locals init ([0] int32 c,
[1] int32 d,
[2] int32 CS$1$0000)
IL_0000: nop
IL_0001: ldarg.0
IL_0002: ldc.i4.5
IL_0003: add
IL_0004: stloc.0
IL_0005: ldarg.1
IL_0006: ldc.i4.s 10
IL_0008: add
IL_0009: stloc.1
IL_000a: ldloc.0
IL_000b: ldloc.1
IL_000c: add
IL_000d: stloc.2
IL_000e: br.s IL_0010
IL_0010: ldloc.2
IL_0011: ret
}
Run Code Online (Sandbox Code Playgroud)
我想知道的是 - 这些操作码是原子的吗?即在抢占式调度内核中,单个操作码在完成执行之前是否有可能被抢占?这里的操作码可以很容易地以1:1的方式映射到asm指令,因为它们具有用于加载,存储,添加等的单独操作码.
但是在更复杂的操作码的情况下呢?比如"call",当操作数是一个方法引用标记时,应首先遵循该方法来解析该方法然后调用?是原子吗?
我正在调用一个实体对象,Patient
并且该实体具有一个名为Visits
type 的属性VisitsCollection
.
VisitsCollections
是一个子类,IList<Visit>
但它也为集合添加了一些自定义逻辑(如自动排序,一些验证,通知等).
我需要使用自定义集合类型,因为它会将一些数据添加到添加到集合中的实体,并透明地执行其他一些文书工作.
现在我想在NHibernate中映射它,所以我创建了:
<list name="Visits" lazy="true" fetch="select">
<key foreign-key="PatientId" />
<index column="Timestamp" />
<one-to-many class="Visit" not-found="ignore"/>
</list>
Run Code Online (Sandbox Code Playgroud)
我得到一个例外:
无法将'NHibernate.Collection.PersistentList'类型的对象强制转换为'... VisitsCollection'
每当我访问访问属性.
我也尝试过以这种方式映射它:
<list name="Visits" lazy="true" fetch="select" collection-type="VisitsCollection">
<key foreign-key="PatientId" />
<index column="Timestamp" />
<one-to-many class="Visit" not-found="ignore"/>
</list>
Run Code Online (Sandbox Code Playgroud)
但是,我还是得到了这个例外:
自定义类型未实现UserCollectionType:..... VisitsCollection
我不想VisitsCollection
从任何NHibernate类型继承我,因为集合类是我希望它与DAL无关的框架的一部分(因为它将在许多场景中使用 - 不仅仅用于数据库).
关于如何映射这个,保留我的代码结构的任何想法?
提前致谢.
collections nhibernate nhibernate-mapping nhibernate-collections
我现在一直在编写一个图像处理算法,在某些时候我需要收集一些关于转换像素的统计信息,以便更深入地了解我应该遵循的进一步开发方向.我需要收集的信息格式如下:
key: RGB value
value: int
Run Code Online (Sandbox Code Playgroud)
我做了什么,是我打开转换后的图像并迭代它,保存我需要的值std::unordered_map
,具有以下签名:
typedef std::unordered_map<boost::gil::rgb8_pixel_t, unsigned int> pixel_map_t;
Run Code Online (Sandbox Code Playgroud)
在循环中:
for(int y = 0; y < vi.height(); y++) {
SrcView::x_iterator dst_it = src.row_begin(y);
for(int x = 0; x < vi.width(); x++, hits++) {
diff_map.insert(std::make_pair(dst_it[x], /* some uint32 */));
}
Run Code Online (Sandbox Code Playgroud)
我还编写了一个自定义哈希函数(它是一个完美的哈希函数:256^2 x R + 256 x G +
B
- 所以无论桶和哈希表的布局如何,冲突都应该是最小的(合理的扩展).
我注意到的是,插入速度非常慢! - 在达到第11次迭代后,插入速度降低约100倍.我发生了大量的碰撞!尽管图像中的重复颜色数量非常少.
之后,我想消除代码中的任何可能的错误,并开始unordered_map
使用原始键类型(如int)对STL哈希函数进行基准测试.
该基准的代码是:
std::size_t hits = 0, colls = 0;
for(int y = 0; y < vi.height(); y++) {
SrcView::x_iterator …
Run Code Online (Sandbox Code Playgroud) 我在std :: vector中有一个元素集合,它们从第一个元素开始按降序排序.我必须使用向量,因为我需要将元素放在连续的内存块中.我有一个集合,其中包含许多具有所述特征的向量实例(总是按降序排序).
现在,有时,当我发现我在更大的集合中有太多元素(持有这些向量的元素)时,我丢弃这些向量中的最小元素,类似于这个伪代码:
grand_collection: collection that holds these vectors
T: type argument of my vector
C: the type that is a member of T, that participates in the < comparison (this is what sorts data before they hit any of the vectors).
std::map<C, std::pair<T::const_reverse_iterator, std::vector<T>&>> what_to_delete;
iterate(it = grand_collection.begin() -> grand_collection.end())
{
iterate(vect_rit = it->rbegin() -> it->rend())
{
// ...
what_to_delete <- (vect_rit->C, pair(vect_rit, *it))
if (what_to_delete.size() > threshold)
what_to_delete.erase(what_to_delete.begin());
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
现在,在运行此代码之后,what_to_delete
我有一组迭代器指向我想从这些向量中移除的原始向量(总体最小值).请记住,原始向量在它们命中此代码之前进行排序,这意味着对于任何what_to_delete[0 - …
我正在为Windows 7的MSV1_0构建一个自定义身份验证子包.我已经使用了Windows SDK中的msvsubauth示例,我对我遇到的一些问题有两个问题:
当我正在尝试确保调用例程get并将注册表中的Auth0属性设置为我的包并在创建文件的Msv1_0SubAuthenticationRoutine末尾添加一个简单代码:
//
// Cleanup up before returning.
//
Cleanup:
hTestFile = CreateFile(
TEXT("C:\\lsa\\lsa.txt"),
GENERIC_READ|GENERIC_WRITE, 0,
NULL, CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL, NULL);
if(hTestFile != INVALID_HANDLE_VALUE) {
CloseHandle(hTestFile);
}
return Status;
} // Msv1_0SubAuthenticationRoutine
Run Code Online (Sandbox Code Playgroud)
显然,包被调用,因为当我输入我的密码时,我收到来自windows的错误消息"参数不正确"这是一个好兆头.但为什么我会收到这个错误?当从单独的.exe文件执行完全相同的代码时,它运行完美并创建测试文本文件.我检查了权限并为"所有人"设置了"完全控制".有任何想法吗?SDK没有明确提到LSA为auth包中的代码创建了什么样的隔离.
第二个问题是测试AP.目前,每次更改我都会重建库,将其复制到测试VM,然后复制到System32文件夹并重新启动它.有更简单的方法吗?
预先感谢!
std::vector<DWORD64> v;
for(size_t i = init; i < pageSize; ++i)
v.push_back(i);
DWORD64 last = *(v.rbegin());
DWORD64 first = *(v.begin());
printf("%d %d \n", last, first);
printf("%d %d \n", first, last);
Run Code Online (Sandbox Code Playgroud)
输出:
4095 0
0 0
Run Code Online (Sandbox Code Playgroud)
我不明白为什么这个printf表现得那样?init或pageSize都不是0.我理解%d对无符号long long无效,但令我困扰的是当参数的顺序改变时printf的行为会发生变化.
我想开始讨论你在单元测试中提到的细节.
您是否测试了主要功能,包括几种方法一次完成一项任务?或者你甚至可以测试自动属性?
因为,例如,我认为编写仅测试此测试的测试没什么价值:
public Email
{
set
{
if(Regex.Match(/*....*/))
email = value;
}
get
{
return email;
}
}
Run Code Online (Sandbox Code Playgroud)
因为它非常清楚,这只是浪费时间.通常当我进行单元测试时,我会测试整个任务 - 就像这个例子一样 - 整个注册过程.
我问这个是因为,目前我正在阅读Jimmy Nilsson撰写的"应用领域驱动设计和模式"一书,他在那里指出他正在用专门的测试测试这些小细节.
这种覆盖水平是否过度使用?
我正在开发一个使用一些REST Web服务的应用程序.它的技术文档说我应该在请求中传递一些字符串的SHA256哈希值.
在示例请求中(在文档中)一个字符串:
HN-Rw2ZHYwllUYkklL5Zo_7lWJVkrbShZPb5CD1expires = 1893013926label [0] =任何/ somestatistics = 1D,2D,7D,28D,30D,31D,lifetimestatus = UPL,livetitle =一
执行后:
digest = Digest::SHA256.digest(string_to_sign)
signature = Base64::encode64(digest).chomp.gsub(/=+$/, '')
Run Code Online (Sandbox Code Playgroud)
导致哈希:
YRYuN2zO + VvxISNp/vKQM5Cl6Dpzoin7mNES0IZJ06U
这个例子是ruby,因为文档适用于ruby开发人员.
当我执行时,我正在用C#和完全相同的字符串开发我的应用程序:
byte[] rawHash = sha256.ComputeHash(rawRequest, 0, rawRequest.Length);
string friendlyHash = Convert.ToBase64String(rawHash);
Run Code Online (Sandbox Code Playgroud)
并删除尾随的"="符号,我得到:
Vw8pl/KxnjcEbyHtfNiMikXZdIunysFF2Ujsow8hyiw
因此,应用程序无法执行导致签名不匹配错误.
我已经尝试在将字符串转换为散列之前的字节数组时更改编码,并且没有任何更改.
有任何想法吗?