2016-10-13 65 views
-1

我正在使用计时器制作动画,并且当边距达到该值时,我应该停止。 “Bir”是我的形状,“ZamanSayacıA”是我的计时器。运算符'=='不能应用于'厚度'和'字符串'类型的操作数

if (Bir.Margin == "510, 410, 0, 0") 
     { 
      ZamanSayacıA.Stop(); 
     } 

并给出以下错误。

算“==”不能被施加到型“厚度”和“字符串”

+2

“Bir.Margin”的类型是什么?它不是一个字符串,显然没有隐式转换为字符串 –

+0

尝试if(Bir.Margin == new Margin(510,410,0,0))......因为您正在使用边距进行comapring一个字符串,无法完成 –

+1

@GiladGreen:它是'Thickness';) –

回答

2

不能与==操作比较一个Thicknessstring,因为两者是不同的类型。但是,Thickness有派上用场构造:

Thickness th = new Thickness(510, 410, 0, 0); 
if(Bir.Margin.Equals(th)) 
{ 

} 

因为== operator超载,你也可以使用:

if(Bir.Margin == th) 
{ 

} 

如果你只有一个字符串"510, 410, 0, 0",你需要得到a Thickness

double[] thLengths = Array.ConvertAll("510, 410, 0, 0".Split(','), double.Parse); 
Thickness th = new Thickness(thLengths[0], thLengths[1], thLengths[2], thLengths[3]); 
0

Bir.Margin的操作数是不是一个string而是Thickness。您无法直接比较string实例与Thickness的实例。

您应该创建一个Thickness比较Bir.Margin到:

if (Bir.Margin == new Margin(510,410,0,0)) 
相关问题