WPF 画布中的形状不出现

wis*_*owy 0 c# wpf drawing canvas

我在 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>
Run Code Online (Sandbox Code Playgroud)

上面是我定义的画布。

下面是绘制椭圆的简单示例;我不知道为什么这没有效果。

                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);
Run Code Online (Sandbox Code Playgroud)

任何人都可以看到有什么问题吗?

编辑:对不起。正如您在 XAML 画布中看到的,名为“BottomCanvas”,在我使用的代码中bottomCanvas,这是一个添加到MainWindow我不知道是什么的属性。那是交易。

Iro*_*ron 5

你的意思Ellipse是不可见?这只是因为 的透明填充SolidColorBrush。的AlphaColor不应为零,这意味着不可见。如果是这样,只需更改 的AlphaColor

mySolidColorBrush.Color = Color.FromArgb(255, 0, 255, 0);
Run Code Online (Sandbox Code Playgroud)