2010-05-09 2 views
0

:미늘 타원, 다음 코드와 애니메이션에 타원을 확장하고있어 버튼을 클릭 할 수 없습니다

타원은 다음과 같은 코드로 구성되어
 ScaleTransform myScTransform = new ScaleTransform(); 
     TransformGroup myTransGroup = new TransformGroup(); 
     myTransGroup.Children.Add(myScTransform); 
     newPHRadio.RenderTransform = myTransGroup; 
     newPHRadio.RenderTransformOrigin = new Point(0.5, 0.5); 

     Storyboard story = new Storyboard(); 
     DoubleAnimation xAnimation = new DoubleAnimation(1, ph.Bereik, new Duration(TimeSpan.FromSeconds(2))); 
     DoubleAnimation yAnimation = new DoubleAnimation(1, ph.Bereik, new Duration(TimeSpan.FromSeconds(2))); 
     DoubleAnimation doorzichtig = new DoubleAnimation(1, 0, new Duration(TimeSpan.FromSeconds(2))); 

     Storyboard.SetTarget(xAnimation, newPHRadio); 
     Storyboard.SetTarget(yAnimation, newPHRadio); 
     Storyboard.SetTarget(doorzichtig, newPHRadio); 

     DependencyProperty[] propertyChainX = new DependencyProperty[] { 
      Ellipse.RenderTransformProperty, 
      TransformGroup.ChildrenProperty, 
      ScaleTransform.ScaleXProperty 
     }; 

     DependencyProperty[] propertyChainY = new DependencyProperty[] { 
      Ellipse.RenderTransformProperty, 
      TransformGroup.ChildrenProperty, 
      ScaleTransform.ScaleYProperty 
     }; 

     string thePath = "(0).(1)[0].(2)"; 

     Storyboard.SetTargetProperty(xAnimation, new PropertyPath(thePath, propertyChainX)); 
     Storyboard.SetTargetProperty(yAnimation, new PropertyPath(thePath, propertyChainY)); 
     Storyboard.SetTargetProperty(doorzichtig, new PropertyPath(Ellipse.OpacityProperty)); 

     story.Children.Add(xAnimation); 
     story.Children.Add(yAnimation); 
     story.Children.Add(doorzichtig); 

     story.Duration = new Duration(TimeSpan.FromSeconds(60/ph.Frequentie)); 
     story.RepeatBehavior = RepeatBehavior.Forever; 
     story.Begin(); 

: 지금

 Ellipse newPHRadio = new Ellipse(); 

     newPHRadio.Width = 1; 
     newPHRadio.Height = 1; 
     newPHRadio.SetValue(Canvas.LeftProperty, ph.xPositie + 7); 
     newPHRadio.SetValue(Canvas.TopProperty, ph.yPositie + 7); 
     newPHRadio.SetValue(Canvas.ZIndexProperty, 3); 

     newPHRadio.Stroke = new SolidColorBrush(Colors.Black); 
     newPHRadio.StrokeThickness = 0.03; 

타원은 z- 인덱스가 1 인 버튼 위에 스케일됩니다. 정적 타원과 채우기가 없으면 버튼을 클릭 할 수 있습니다. 이제 채우기도 없지만 버튼을 클릭 할 수 없습니다. 누군가이 문제를 해결할 수있는 방법을 말해 줄 수 있습니까?

+0

:

명시 적으로 null로 타원의 채우기를 설정 해보 ??? 이걸 이해하지 못 했어. 타원이 채워 졌을 때 버튼을 클릭 할 수 없다는 뜻입니까? – Amsakanna

+0

답장을 보내 주셔서 감사합니다. 죄송합니다. 명확하지 않으면 영어가 제 첫 번째 언어가 아닙니다. 저는 Z- 인덱스가 2 인 버튼이 있습니다. 그 버튼 위에는 채우기가없는 타원과 Z- 인덱스 3 (그림의 왼쪽 부분)이 있습니다. 이 경우 버튼을 클릭 할 수 있습니다. 이제 동일한 버튼과 동일한 타원이 있습니다. 위의 코드를 사용하여 타원을 크기를 조절합니다 (그림의 오른쪽). 이제 버튼을 클릭 할 수 없습니다. 사진은 http://xs.to/image-6A50_4BE86908.jpg에서 찾을 수 있습니다. 지금 내 질문에 대한 답변을 드리겠습니다. :) – user336720

답변

0

제공 한 코드를 사용하면 버튼을 클릭 할 수 있습니다.

그러나 타원 채우기를 null 이외의 값으로 설정하면 Brushes.Transparent에 대해서도 더 이상 클릭을 수행하지 않습니다. "버튼을 클릭 할 정적 타원없이 칠 지금이뿐만 아니라 채우기가 없지만 버튼을 클릭 할 수 없습니다.."

newPHRadio.Fill = null; 
관련 문제