2010-05-09 60 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

「對於靜態橢圓形,沒有填充,按鈕是點擊現在還沒有補很好,但按鈕無法點擊。」 ???不明白這一點。你的意思是你的按鈕在橢圓填充時不可點擊? – Amsakanna 2010-05-10 06:34:10

+0

感謝您的回覆。 對不起,如果我不清楚,英語不是我的第一語言。 我有一個z-index爲2的按鈕。在該按鈕的頂部,我有一個沒有填充的橢圓和z索引3(圖片的左側部分)。在這種情況下,按鈕是可點擊的。 現在我有相同的按鈕和相同的橢圓。我使用上面的代碼縮放橢圓(圖片的右側)。現在該按鈕不可點擊。 圖片可以在這裏找到:http://xs.to/image-6A50_4BE86908.jpg 我希望你現在明白我的問題:) – user336720 2010-05-10 20:17:01

回答

0

您提供的代碼是可點擊的按鈕。

但是,如果您將橢圓的填充設置爲除null之外的任何內容,即使對於Brushes.Transparent,單擊也不會再將其放到按鈕上。

嘗試橢圓的Fill顯式地設置爲null:

newPHRadio.Fill = null;