我想得到一个TimeSpan与另一个TimeSpan的比率(基本上是从它的总时间开始播放视频的进度).我目前的方法是获取两个TimeSpan对象的毫秒数,并将一个对象除以另一个.就像是:
int durationInMilliseconds = totalTimeSpan.Milliseconds;
int progressInMilliseconds = progressTimeSpan.Milliseconds;
Double progressRatio = progressInMilliseconds / durationInMilliseconds;
Run Code Online (Sandbox Code Playgroud)
有更直接的路线吗?这是一个简单的问题,我只是好奇,如果有一个超级优雅的方式来解决它.
为所有詹姆斯干杯
在一个特定的单元测试中,我试图多次引发一个事件,然后在最终事件被引发之后通知一个属性值.我有类似的东西
public void TurnRight()
{
var mockFoo = new Mock<IFoo>();
SomeService someService= new SomeService ();
someService.Foo= mockFoo.Object;
mockFoo.Raise(foo=> foo.TurnedRight += null, EventArgs.Empty);
mockFoo.Raise(foo=> foo.TurnedRight += null, EventArgs.Empty);
mockFoo.Raise(foo=> foo.TurnedRight += null, EventArgs.Empty);
mockFoo.VerifySet(foo=> foo.Orientation = Orientation.West);
}
Run Code Online (Sandbox Code Playgroud)
方向实际上只改为东方(因为我相信这个事件只会被提升一次).难道我做错了什么?这是我第一次使用moq,所以我可能会遗漏一些东西.
干杯J
编辑...我应该使用的正确代码
public void TurnRight()
{
var mockFoo = new Mock<IFoo>();
SomeService someService= new SomeService ();
someService.Foo= mockFoo.Object;
mockFoo.SetupProperty(foo=> foo.Orientation);
mockFoo.Raise(foo=> foo.TurnedRight += null, EventArgs.Empty);
mockFoo.Raise(foo=> foo.TurnedRight += null, EventArgs.Empty);
mockFoo.Raise(foo=> foo.TurnedRight += null, EventArgs.Empty);
Assert.AreEqual(mockFoo.Object.Orientation, Orientation.South);
}
Run Code Online (Sandbox Code Playgroud) 任何人都可以确认(最好带有文档链接)MSDeploy软件包是否在文件同步之前完整上传,或者msdeploy.exe和msdeploy.axd之间是否同步(只修改了文件)?
或者,换句话说,如果我有一个1GB的包zip只包含1MB的更改文件,msdeploy会将整个1GB包上传到MsDeploy.axd并在服务器上执行同步,或者只上传1MB的值改变了文件?
有许多基于计时器的运算符,虽然我没有具体的例子,但我认为创建使用计时器的新运算符很常见.那么你将如何编写一个同步运行这些运算符的测试?
作为一个例子,我怎样才能对像BufferWithTime这样的运算符进行单元测试呢?
我在叫这个命令
Invoke-Command -computername remotepc {
Import-Module WebAdministration;
New-Website -Name www.somesite.com -ApplicationPool www.somesite.com -hostHeader www.somesite.com -physicalPath c:\inetpub\wwwroot }
Run Code Online (Sandbox Code Playgroud)
该网站在远程计算机上的IIS中成功创建.但是,当powershell返回时,会显示异常消息:
Invalid class string (Exception from HRESULT: 0x800401F3 (CO_E_CLASSSTRING))
+ CategoryInfo : NotSpecified: (:) [New-Website], COMException
+ FullyQualifiedErrorId : System.Runtime.InteropServices.COMException,Microsoft.IIs.PowerShell.Provider.NewWebsite
Command
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么我收到这条消息以及我如何解决它?
这是交互元素中交互元素的古老问题,但我希望ScatterViewItem包含其他表面交互元素,如SurfaceButton或SurfaceCheckBox.我已经拥有了所有元素,他们对点击等做出反应.问题是,一旦我点击了一个不包含控件的区域,我只能得到正常的ScatterView行为.
即使联系人位于SurfaceButton或SurfaceCheckbox上,是否有优雅的解决方案允许拖动?
例如
<s:ScatterView >
<Grid Width="200" Height="200">
<s:SurfaceButton />
</Grid>
</s:ScatterView>
Run Code Online (Sandbox Code Playgroud) 我只是在使用Silverlight中的自定义控件,而对于我的生活,我无法使TemplateBindings工作.有人可以给这个缩小版本一次,看看我是否遗漏了什么.
所以我在generic.xaml中的ControlTemplate看起来像
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:NumericStepperControl;assembly=NumericStepperControl">
<Style TargetType="local:NumericStepper">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="local:NumericStepper">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Border Grid.Column="0" BorderBrush="Black" BorderThickness="2" Width="50" Height="30">
<TextBlock Width="50" Height="30" Text="{TemplateBinding Value}" />
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
Run Code Online (Sandbox Code Playgroud)
我的控件类看起来像:
namespace NumericStepperControl
{
public class NumericStepper : Control
{
public static readonly DependencyProperty ValueProperty = DependencyProperty.Register("Value", typeof(int), typeof(NumericStepper), new PropertyMetadata(20));
public NumericStepper()
: base()
{
DefaultStyleKey = typeof( NumericStepper );
}
public int Value
{
get
{
return (int)GetValue(ValueProperty);
} …Run Code Online (Sandbox Code Playgroud) 当试图使用一个Slider控件我想听听MouseLeftButtonDown和MouseLeftButtonUp.我为这两个活动设置了处理程序.在MouseLeftButtonUp按预期工作.MouseLeftButtonDown根本没有提高.
有什么想法吗?
我做了一些谷歌搜索,似乎WPF也没有开火.其中一个解决方案(在这篇文章中)是使用事件的预览版本,这是silverlight不支持的.
我有没有看到任何简单的解决方案?
谢谢J
我可以使用循环来做到这一点,但有没有办法获取两个IEnumerables,枚举所有可能的排列并选择一个包含排列的对象?我觉得这应该是"应该",但我不确定要使用哪些操作符.
谢谢詹姆斯
我有一个正确的barney让我了解如何使用MVVM模式将所有内容组合在一起.这一切在实践中看起来都很简单但是试图实现它我似乎打破了我尝试编写的各种其他规则.
正如旁注,我正在尝试使用Flex实现模式,而不是Silverlight或WPF,所以如果任何人都有充分理由说明为什么不应该这样做,那么我想听听它们.
我有一个问题,我有几个观点.有时我必须同时在页面上显示两个视图; 有时候我会切换回一个视图.在我正常的Flex大脑中,我会有一个带有代码隐藏的主视图,其中包含我的所有其他视图(同样具有代码隐藏).然后,该主视图将切换其他单个视图.
当我尝试在MVVM实现这个我想坚持MVVM原则通过使用绑定其解耦我Views从ViewModels.假设我ViewModel为应用程序范围创建了一个状态,并且我ApplicationView对该数据进行了绑定,并完成了所有子视图的切换.
现在,我应该在哪里为子视图创建视图模型?我在里面试过ApplicationView- 这似乎不对.然后我在应用程序视图之外尝试并将它的实例传递到ApplicationView然后我的子模型中绑定到它.我错过了什么吗?这些方法似乎都不适合试图解耦这一点.
任何解释这个问题的好书或链接都将非常感激.
干杯,詹姆斯
我试图在运行时复制flex组件.
例如,如果我有这个
mx:Button label ="btn"id ="btn"click ="handleClick(event)"/>
我应该能够调用一个名为DuplicateComponent()的函数,它应该返回一个与上面的按钮完全相同的UI组件,包括带有它的事件监听器.
有谁可以帮助我吗??提前致谢
我正在尝试在Silverlight中创建一个自定义控件,动态缩放其ControlTemplate中的元素.ControlTemplate的第一次尝试看起来像这样:
<ControlTemplate TargetType="controls:ProgressBar">
<Grid>
<Rectangle x:Name="TrackPart" Fill="{TemplateBinding Background}" HorizontalAlignment="Left" />
<Rectangle x:Name="ProgressPart" Fill="Blue" >
<Rectangle.RenderTransform>
<ScaleTransform ScaleX="{TemplateBinding Progress}" />
</Rectangle.RenderTransform>
</Rectangle>
</Grid>
</ControlTemplate>
Run Code Online (Sandbox Code Playgroud)
但是,此论坛帖子声明TemplateBinding仅适用于FrameworkElements的衍生物.ScaleTransform不是FrameworkElement.有没有解决这个问题?针对这种情况的最佳做法是什么?
c# ×3
silverlight ×3
apache-flex ×2
unit-testing ×2
wpf ×2
adobe ×1
air ×1
copy ×1
ienumerable ×1
iis ×1
linq ×1
moq ×1
mouseevent ×1
msdeploy ×1
mvvm ×1
permutation ×1
pixelsense ×1
powershell ×1
scatterview ×1
slider ×1