2017-10-15 114 views
-1

我遇到了一個非常奇怪的問題,在WPF畫布上繪製形狀。WPF畫布中的形狀不出現

<DockPanel Grid.Row="3"> 
      <Canvas Name="BottomCanvas" Margin="15" Background="Yellow"> 
       <Canvas Name="TransparentCanvas" Background="Transparent" 
         MouseDown="TransparentCanvas_MouseDown" 
         MouseUp="TransparentCanvas_MouseUp" 
         MouseMove="TransparentCanvas_MouseMove" 
         Width="{Binding RelativeSource={RelativeSource FindAncestor, 
         AncestorType={x:Type Canvas}},Path=ActualWidth}" 
         Height="{Binding RelativeSource={RelativeSource FindAncestor, 
         AncestorType={x:Type Canvas}},Path=ActualHeight}"> 
       </Canvas> 
      </Canvas> 

     </DockPanel> 

上面有我的畫布定義。

下面是繪製elipse的簡單示例;我不知道爲什麼這不起作用。

   Ellipse myEllipse = new Ellipse(); 
       SolidColorBrush mySolidColorBrush = new SolidColorBrush(); 
       mySolidColorBrush.Color = Color.FromArgb(0, 0, 255, 0); 
       myEllipse.Fill = mySolidColorBrush; 
       myEllipse.Width = myEllipse.Height = 100; 
       Canvas.SetTop(myEllipse, 15); 
       Canvas.SetLeft(myEllipse, 15); ; 
       bottomCanvas.Children.Add(myEllipse); 

任何人都可以看到什麼是錯的?編輯: 對不起。正如您在XAML畫布中看到的,名爲'BottomCanvas',並且在代碼中我使用了bottomCanvas這是一個添加到MainWindow的屬性,我不知道該怎麼做。這是交易。

回答

4

您的意思是Ellipse不可見?這只是因爲SolidColorBrush的透明填充。 ColorAlpha值不應爲零,這意味着不可見。如果是這樣,只需更改Color的值Alpha

mySolidColorBrush.Color = Color.FromArgb(255, 0, 255, 0); 
+0

這是一條謹慎的通知。謝謝! –

+0

我使用'[Snoop](http://snoopwpf.codeplex.com)'來找出問題。 – Iron

+0

@ wis.niowy你能接受這個答案,以便其他人可以快速解決問題嗎? – Iron