我想将System.Windows.Media.Color值转换为System.Windows.Media.Brush.颜色值被数据绑定到Rectangle对象的Fill属性.Fill属性采用Brush对象,因此我需要一个IValueConverter对象来执行转换.
WPF中是否有内置转换器,还是需要创建自己的转换器?如果有必要,我该如何创建自己的?
一旦设置了初始值,我就有几个不可变的类.Eric Lippert称之为一次性写入不可变性.
在C#中实现一次写入不变性通常意味着通过构造函数设置初始值.这些值初始化只读字段.
但是,如果需要使用XmlSerializer或DataContractSerializer将类似这样的类序列化为XML,则必须具有无参数构造函数.
有没有人建议如何解决这个问题?是否有其他形式的不变性可以更好地与序列化?
编辑:正如@Todd所指出的,DataContractSerializer不需要无参数构造函数.根据MSDN上的DataContractSerializer文档,DataContractSerializer"不会调用目标对象的构造函数."
默认情况下,C#将DateTime对象与100ns刻度进行比较.但是,我的数据库将DateTime值返回到最接近的毫秒.使用指定的容差比较C#中两个DateTime对象的最佳方法是什么?
编辑:我正在处理截断问题,而不是舍入问题.正如Joe在下面指出的那样,舍入问题将引入新的问题.
适合我的解决方案是以下组合.
(dateTime1 - dateTime2).Duration() < TimeSpan.FromMilliseconds(1)
Run Code Online (Sandbox Code Playgroud)
如果差异小于1毫秒,则返回true.对Duration()的调用很重要,以获得两个日期之间差异的绝对值.
可能重复:
在C#中复制目录的全部内容的最佳方法
我想在.NET中将包含其所有子文件夹和文件的文件夹从一个位置复制到另一个位置.最好的方法是什么?
我在System.IO.File类上看到了Copy方法,但是想知道是否有一种比抓取目录树更简单,更好或更快的方法.
我正在将Active Directory身份验证构建到我的应用程序中,并且我计划将应用程序的内部帐户链接到用户的域SID.我更容易使用sid的字符串格式而不是字节数组,所以我打算将它作为字符串存储在数据库中.我应该多长时间来确保SID不会被截断?
我有一个RESTful Web应用程序,它支持一组项目上的多个排序字段.是否有将这些排序字段编码到URL的查询字符串中的通用约定?我正在考虑如下模式:
http://myapp.com/books?sort=author:asc,datepublished:desc&count=12
Run Code Online (Sandbox Code Playgroud)
这将按作者排序书籍集合,然后按发布日期排序.
基本上,我需要一种方便的方法,使我的查询字符串中的名称 - 值对具有自己的名称 - 值对.我也需要为上面的例子做一些与过滤器参数类似的事情.
Rails或ASP.NET MVC有这样的模式吗?是否有其他框架已经建立了处理此问题的方法?我宁愿使用熟悉的格式而不是自己的格式.
我也更喜欢使用尽可能少的URL百分比编码的格式.
我的客户端应用程序需要生成HTML.我想使用像Spark这样的模板/视图引擎解决方案,但我不确定Spark是否可以在ASP.NET应用程序之外使用.有没有人知道以这种方式使用Spark的任何样本或文档?
(如果您知道可以单独使用的其他视图引擎解决方案,我也很想知道这些.)
我需要将WPF应用程序中使用的颜色序列化到数据库.我想使用sRGB值,因为他们对我们这些在过去几年中进行Web开发的人更熟悉.
如何从System.Windows.Media.Color对象获取ARGB字符串(如#FFFFFFFF)?
更新:我被MSDN上的文档误导了.正如下面提到的@Kris,该ToString()方法的文档不正确.虽然它说ToString()"使用ScRGB通道创建颜色的字符串表示",但如果使用该FromARGB()方法创建颜色,它实际上将返回ARGB十六进制格式的字符串.我想这是一个没有文档记录的功能.
我有TextBlock动态添加Inlines(基本上是一堆斜体或粗体的Run对象).
在我的应用程序中,我有搜索功能.
我希望能够突出显示正在搜索的TextBlock文本.
通过突出显示我的意思是更改TextBlock文本颜色的某些部分(请记住,它可能一次突出显示几个不同的Run对象).
但它接缝非常不稳定:(
有没有简单的方法来解决这个问题?
我有一个包含TreeView的HeaderedContentControl.
<HeaderedContentControl Header="Steps" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<TreeView Name="WizardSteps" ItemsSource="{Binding WizardSteps}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<!-- Hierarchical data templates here -->
</TreeView>
</HeaderedContentControl>
Run Code Online (Sandbox Code Playgroud)
虽然HeaderedContentControl伸展以填充其父网格内的区域,但我的TreeView控件仅占用可用空间的一小部分.
如何扩展我的TreeView以填充HeaderedContentControl的内容区域?
wpf ×4
c# ×3
colors ×2
.net ×1
comparison ×1
converter ×1
copy ×1
data-binding ×1
datetime ×1
directory ×1
file ×1
format ×1
highlighting ×1
immutability ×1
layout ×1
query-string ×1
resolution ×1
sid ×1
textblock ×1
url ×1
wpf-controls ×1
xaml ×1