2017-10-15 10 views
-1

J'ai rencontré un problème très étrange avec le dessin de formes sur une toile dans WPF.Les formes dans le canevas WPF n'apparaissent pas

<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> 

Ci-dessus ma toile est définie. Ci-dessous, il y a un exemple simple de dessin d'une ellipse; Je ne sais pas pourquoi cela n'a aucun effet.

   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); 

Quelqu'un peut-il voir ce qui ne va pas?

EDIT: Je suis désolé. Comme vous pouvez le voir dans le canevas XAML est appelé 'BottomCanvas' et dans le code que j'ai utilisé bottomCanvas qui est une propriété ajoutée à un MainWindow je ne sais pas quoi faire. C'était le marché.

Répondre

4

Vous voulez dire que le Ellipse n'est pas visible? C'est juste à cause du remplissage transparent de SolidColorBrush. La valeur Alpha du Color ne doit pas être zéro, ce qui signifie invisible. Dans ce cas, il suffit de changer la valeur Alpha du Color:

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

C'est un avis observatrice. Merci! –

+0

J'utilise le '[Snoop] (http://snoopwpf.codeplex.com)' pour comprendre le problème. – Iron

+0

@ wis.niowy Pourriez-vous accepter cette réponse afin que les autres puissent rapidement avoir le problème? – Iron