除了皇家主题风格,我希望每个按钮都有5分的余量.
Window1.xaml:
<Window x:Class="_styles.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/PresentationFramework.Royale;component/themes/royale.normalcolor.xaml" />
</ResourceDictionary.MergedDictionaries>
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
<Setter Property="Margin" Value="5"/>
</Style>
</ResourceDictionary>
</Window.Resources>
<StackPanel>
<Button Content="Button A"/>
<Button Content="Button B"/>
</StackPanel>
</Window>
Run Code Online (Sandbox Code Playgroud)
它编译但我得到:
PresentationFramework.dll中出现未处理的"System.StackOverflowException"类型异常
public Window1() {
InitializeComponent(); // <-- getting exception here
}
Run Code Online (Sandbox Code Playgroud)
没有例外细节,因为:
{无法计算表达式,因为当前线程处于堆栈溢出状态.}
我有一个使用模块构建的网站requireJS.我想在这个项目上开始使用TypeScript(1.8,Visual Studio 2015),并尝试重写其中一个模块.
目前我的模块如下:
// file: ProjectFoo/app/dashboard/viewProfile.js
define(["services/datasvc"], function (datasvc) {
datasvc.getData(...).then(...);
});
Run Code Online (Sandbox Code Playgroud)
文件datasvc.js位于以下路径:ProjectFoo/services/datasvc.js
为了使datasvc.jsrequireJS 可以访问,我已经配置了以下路径(requireJS配置):
services - > ./services
重写我的模块后,我使用以下构造导入datasvc(注意:TypeScript编译器配置为使用amd模块结构).
import * as datasvc from "services/datasvc";
Run Code Online (Sandbox Code Playgroud)
但是这不起作用,因为TypeScript将其services/datasvc视为相对于当前文件的路径.但是,如果我按如下方式重写该import语句,那么TypeScript [compiler]会成功:
import * as datasvc from "../../services/datasvc";
Run Code Online (Sandbox Code Playgroud)
然而,这导致datasvc使用相对路径导入,即生成代码看起来像:
define(["require", "exports", "../../services/datasvc"]...
Run Code Online (Sandbox Code Playgroud)
这里的问题是我将不得不更改../要包含在模块路径中的数量,具体取决于我所在文件的嵌套深度.
问题:
有没有办法使用import * as datasvc from "services/datasvc"和以某种方式配置TypeScript来处理requireJS的相同方式?
以下代码片段无法编译.出现以下错误:
无法将类型'Container <ChildClass>'隐式转换为'Container <BaseClass>'
class BaseClass {}
class ChildClass : BaseClass {}
class Container<T> where T : BaseClass {}
class Program {
static void Main() {
// why doesn't this work?
Container<BaseClass> obj = new Container<ChildClass>();
}
}
Run Code Online (Sandbox Code Playgroud)
这是设计的吗?如果是,那是什么原因?
我需要将额外的参数传递给onclick处理程序.我无法确定哪种方式"更好":
编辑:
上下文:我有一个表格,显示一个事件的名单.每行都有一个"删除"按钮.将recordId传递给delete-handler的更好方法是什么?
$('a.button').click(function() {
var recordId = $(this).metadata().recordId;
console.log(recordId);
});
...
<tr>...<a class='{recordId:1} button'>delete</a></tr>
<tr>...<a class='{recordId:2} button'>delete</a></tr>
Run Code Online (Sandbox Code Playgroud)
要么
function delete(recordId) {
console.log(recordId);
}
...
<tr>....<a class='button' onclick='deleteRecord(1)'>Delete</a></tr>
<tr>....<a class='button' onclick='deleteRecord(2)'>Delete</a></tr>
Run Code Online (Sandbox Code Playgroud)
每种选择的优缺点是什么?
注:我用a.button作为一种习俗,CSS样式的按钮,但它不是表现为一个链接.
编辑:
如果你能论证提供的替代品的优点,我也会感谢替代解决方案.
我想要一个字典,它将返回不在字典中的任何键的指定值,如:
var dict = new DictWithDefValues("not specified");
dict.Add("bob78", "Smart");
dict.Add("jane17", "Doe");
Assert.AreEqual(dict["xxx"], "not specified");
Run Code Online (Sandbox Code Playgroud)
扩展System.Collections.Generics.Dictionary并覆盖TryGetValue不起作用,因为TryGetValue不是虚拟的.
从头开始重新实现字典(来自IDictionary <,>)是太多的努力.
扩展方法不会让我用默认值"初始化"字典.我希望字典的消费者认为密钥存在,而不仅仅是dict.GetOrDefault(key, "not specified");
我有网址:http : //site.com/page.aspx?update
如何检查该更新值是否存在?
HttpValueCollection将其视为具有null键的实体。我试过了:
var noKeyValues = Request.QueryString.GetValues(null);
if (noKeyValues != null && noKeyValues.Any(v=>v==update)) ...
Run Code Online (Sandbox Code Playgroud)
但它让我皱眉,因为 GetValues 的参数是用 [NotNull] 修饰的。
所以我最终做了:
var queryValuesWithNoKey =
Request.QueryString.AllKeys.Select((key, index) => new { key, value = Request.QueryString.GetValues(index) }).Where(
item => item.key == null).Select(item => item.value).SingleOrDefault();
if (queryValuesWithNoKey != null && queryValuesWithNoKey.Any(v => v.ToLower() == "update")) live = true;
Run Code Online (Sandbox Code Playgroud)
不是最优雅的解决方法。有没有更好的方法从查询字符串中获取无键值?
我将标签设置为按钮,并使用它代替<button>或<input submit>标签.
为了识别操作,我使用href属性,例如:
<a href='update'>Update</a>
<a href='delete'>Delete</a>
Run Code Online (Sandbox Code Playgroud)
然后使用jQuery:$('a [href ="update"]').click(function(){...});
它运作良好.当给定链接充当表单上的提交按钮时,我还使用href属性作为"operation"参数的值.
现在的问题是 - 搜索引擎会因为盲目链接而惩罚我吗?(我认同).
我该如何解决?用#update而代替?我不能使用id属性,因为可能有多个按钮执行相同的操作.
注意:点击处理程序可以使用类连接,这很方便.所以我宁愿不使用id多个按钮连接到同一个处理程序.
<!-- inside a form -->
<a href='update' class='submit-button'>Update</a>
<!-- inside $(function() { .. });
$('a.submit-button').click(function() {
// 1. get href of the clicked link : href = $(this).attr('href');
// 2. add <input hidden> to the form: <input type='hidden' name='operation' value='<href>'/>
// 3. submit form : $(this).parents('form').submit();
});
Run Code Online (Sandbox Code Playgroud) 是否有一种简单的方法来更改标题字体大小而不覆盖完全复制ColumnHeaderTemplate?
注意:不确定它是否相关,但我使用提供ColumnHeaderTemplate的应用程序主题(PresentationFramework.Royale).
这些是我的假设,这些是正确的吗?
鉴于此,我有一个包含一个母版页和两个.aspx页的项目.每个页面都有一个id为"records"的表.
问题:我可以为每个.aspx页面导入.css文件吗?
有没有更好的方法来在单个页面中范围 html元素?
我在执行工作流程时遇到了一个特殊问题.
我已经尝试了我能想到的一切,现在需要一些想法.
这是我的配置:
1.在IIS 7中托管的WF4工作流服务(xamlx),并使用net.msmq/netMsmqBinding进行传输(MSMQ是事务性的).
2.没有使用工作流持久性.
3.我使用控制台应用程序客户端向工作流发送消息(每条消息创建新的工作流).4.每个工作流程如下:等待START消息 - >等待END消息(我只发送START消息).
如果我发送500条消息 - 464正确处理,但超过该消息,所有消息都转到lock_*队列,然后移动到毒性队列.我检查过Debug,Analytic事件日志,以及消息和跟踪svclogs这是我得到的最详细的消息:
System.TimeoutException,mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089操作未在分配的超时00:00:30内完成.分配给此操作的时间可能是较长超时的一部分.at System.Runtime.AsyncResult.End [TAsyncResult](IAsyncResult结果)System.ServiceModel.Activities.Dispatcher.PersistenceProviderDirectory.LoadOrCreateAsyncResult.HandleReserveThrottle(IAsyncResult result)at System.Runtime.AsyncResult.AsyncCompletionWrapperCallback(IAsyncResult result)System.TimeoutException:The操作未在指定的超时00:00:30内完成.分配给此操作的时间可能是较长超时的一部分.at System.Runtime.AsyncResult.End [TAsyncResult](IAsyncResult结果)位于System.Runtime.AsyncResult.AsyncCompletionWrapperCallback(IAsyncResult结果)的System.ServiceModel.Activities.Dispatcher.PersistenceProviderDirectory.LoadOrCreateAsyncResult.HandleReserveThrottle(IAsyncResult result)
那时请求http://localhost/MyWebService?wsdl也失败了404.
如果我重新启动IIS - 一切都恢复正常,直到发送464条消息.
jquery ×2
styles ×2
themes ×2
wpf ×2
.net ×1
asp.net ×1
asp.net-mvc ×1
c# ×1
css ×1
dictionary ×1
generics ×1
gridview ×1
html ×1
inheritance ×1
javascript ×1
master-pages ×1
msmq ×1
query-string ×1
seo ×1
templating ×1
typescript ×1