我有一个支持WPF的C#(2008/.NET 3.5)类库程序集(基于这篇文章).
我创建了几个窗口,现在我正在尝试为它们创建一个通用的样式集.但是,因为它是一个类库(而不是WPF应用程序),所以我没有app.xaml(及其包含的Application和相应的Application.Resources)来存储这些样式以进行全局访问.
那么:我如何创建一个顶级的样式定义集,这些样式定义将被程序集中的所有xaml文件看到,因为我没有app.xaml(见上文)?和/或是否可以将一个有效的app.xaml 添加到类库中?
仅供参考,我尝试在ResourceDictionary.xaml文件中创建ResourceDictionary,并将其包含在"Window.Resources"块中的每个窗口中.结果是解决了按钮等的样式......但不适用于封闭的Window.我可以放入Style="{StaticResource MyWindowStyle}"Window的开放块,它可以编译并在VS Design窗口中显示,但在实际运行时我得到一个解析异常(无法找到MyWindowStyle;我猜测Visual Studio看到后面包含的字典有问题的行,但CRL更顺序地执行,因此尚未加载ResourceDictionary).
感谢您的想法,但仍然没有...显然类库不会隐式支持generic.xaml用法.我将generic.xaml添加到我的类库项目中,并将其Build Action设置为"Resource".它包含:
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="{x:Type Window}" x:Key="MyWindow">
<Setter Property="Background" Value="Black"/>
</Style>
</ResourceDictionary>
Run Code Online (Sandbox Code Playgroud)
我想要使用主题的窗口xaml如下所示:
<Window x:Class="MyAssembly.ConfigureGenericButtons"
x:ClassModifier="internal"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Style="{StaticResource MyWindow}"
Title="ConfigureGenericButtons">
...Buttons, etc...
</Window>
Run Code Online (Sandbox Code Playgroud)
虽然VS Design窗口没有显示使用MyWindow样式的窗口(即黑色背景),但它编译良好并启动.但是,当包含此类库的应用程序进行调用以导致显示此窗口时,我会收到XamlParseException:
找不到名为"{MyWindow}"的资源.
我也尝试省略Style参数,以查看默认情况下窗口是否会使用该样式(我尝试使用包含和不包含的generic.xaml中的x:Key).没有错误,但generic.xaml中定义的任何内容都没有出现.
我在这里做错了什么,或者关于如何允许在窗口上使用常见自定义样式的任何其他想法(即,不必在每个Window的xaml中定义样式) - 需要注意的是这不是应用?
我正在为SharePoint列表编写ItemAdding处理程序,该列表包含多用户字段.由于此时SPItem实际上不可用,我认为我已经降级为使用从SPItemEventDataCollection返回的字符串.当user1,user2和user3存在时,该字符串将如下所示:
1; #MYDOMAIN\USER1;#4; #MYDOMAIN\USER2;#10; #MYDOMAIN \用户3
我想将其转换为SPUser对象数组,以便将其传递给另一个现有方法.是否有任何SharePoint内置方法来处理这些字符串,还是我降级为解析此字符串?
此外,假设我需要处理此字符串,它看起来像这里的整数标记始终对应于后面的域\用户名.是否有任何情况,这将不是真的,整数或域\用户名丢失或不正确?使用数字并使用SPWeb的SiteUsers.GetByID(id)方法是否安全?在一些测试中,我无法让它失败,但是如果数字和字符串数据完全是冗余的,那么它们似乎很奇怪.
谢谢!
根本不是SQL人员.请顾问写下以下代码.
首先,它确保只选择了一所小学 - 然后,在BEGIN之后,如果变量@Term等于3,我们想在IF语句下做这些东西.这是问题所在.当@Term不是= 3时,我们仍然想要下拉并执行SECOND INSERT INTO @Classes部分.仅供参考 - 当运行时,Term = 3,但它不同时执行两个INSERT - 如果在"IF @Term = 3"部分的末尾有一个END IF,而不仅仅是一个简单的END?
IF @SchoolCategoryCode = 'Elem'
--- We now have determined we are processing an elementary school...
BEGIN
---- Only do the following if the variable @Term equals a 3 - if it does not, skip just this first part
IF @Term = 3
BEGIN
INSERT INTO @Classes
SELECT
XXXXXX
FROM XXXX blah blah blah
END <----(Should this be ENDIF?)
---- **always** "fall thru" …Run Code Online (Sandbox Code Playgroud) 在我的团队的一个相当生气勃勃的讨论中,我被认为是大多数人喜欢的主键.我们有以下小组 -
什么是PK的最佳方法?如果你可以证明你的意见,这将是很棒的.上面有没有更好的方法?
编辑:任何人都有一个简单的样本/算法来生成可扩展的行的人类可读标识符?
algorithm ddl database-design primary-key relational-database
case i of
0..99 : Function-call('bobo') ;
100..209 : function-smell('Hobo');
210..300 : function-yikes('argh');
end;
Run Code Online (Sandbox Code Playgroud)
但是,如果我想要210..300来调用功能和功能气味怎么办?无法弄清楚如何谢谢.
我昨晚读了这篇文章,我注意到它是从2006年开始的.我可以选择ORM,数据库的任何一种方式,但我只是想知道是否一切都不好杰夫说ORM仍然适用,即使现在考虑帖子是从2006年.
我正在使用C#WinForms为我的XNA游戏创建一个关卡生成器.我有一个瓷砖网格,您可以使用铅笔工具绘制,就像在MSPaint中一样.问题是,当您快速拖动鼠标(ish)绘制线条时,会跳过图块.
我曾尝试使用我在谷歌上看到的一种方法,即生成一个线程来进行绘画,但这似乎没有帮助.
有任何想法吗?
我想通过Windows上的软件重启USB设备.
我正在开发一个小型USB功率微控制器.该芯片将在电源循环中恢复原生行为并允许代码下载.由于我的代码会在出现问题时使设备崩溃 - 使其忽略所有USB命令 - 我必须从系统中物理拔出设备.
我想远程进行开发,而不必亲自到场.
到目前为止,我已尝试使用"devcon"来禁用部分USB堆栈.虽然这会将集线器带入D3(应该关闭电源!),但仍然会为设备供电.
是否有任何预先存在的解决方案或SetupAPI技巧可能会有所帮助?
在XML 1.0中有许多不合法编码的字符,例如U+0007('bell')和U+001B('escape').大多数有趣的是非空白的"控制"字符.
从(例如)这个问题和其他问题可以清楚地看出,这是XML规范的问题 - 但是有人可以说明为什么 XML规范禁止这些字符吗?
现在看来似乎可能已要求他们在越狱进行编码,例如,作为与分别,但也许有一个实际的原因的字符被禁止,而不是需要进行转义?
Answerers建议避免传输控制字符有一些动机,但Unicode包含许多其他类似控件的字符(考虑U+200C"零宽度非连接").我认识到这种行为可能没有充分的理由,但我仍然希望更好地理解它.
这特别令人沮丧,因为当这些字符值出现在其他编码数据格式中时,我最终"双重转义"需要对其进行编码的新XML文档.
有没有人知道我将这个XML文档命名为什么?现在我把它创建在哪里?
我想在我的网站上提供OSDD(OpenSearch描述文档),以便谷歌浏览器自动获取它的搜索功能.谷歌告诉我它是如何完成的,但不是应该托管的地方.我也找不到任何关于OpenSearch网站上最终位置的引用.我甚至尝试过寻找支持它的地方的来源,看看它是否是某种META标签无济于事.
编辑嗯,有一种方法可以明确地做到这一点.现在我只需要看看它是否有自动发生的方式,因为它在许多站点上都没有(它们都没有任何类型的链接标记):bugmenot.com,*.craigslist.org,以及任何其他网站可能会在他们右键单击他们的Chrome地址栏并选择"编辑搜索引擎..."时找到.