【问题标题】:Shapes in WPF canvas do not appearWPF 画布中的形状不出现
【发布时间】:2017-10-15 16:48:42
【问题描述】:

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

上面定义了我的画布。

下面是一个画椭圆的简单例子;我不知道为什么这没有效果。

                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 的属性,我不知道它的用途。就是这样。

【问题讨论】:

    标签: c# wpf canvas drawing


    【解决方案1】:

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

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

    【讨论】:

    • 这是一个细心的通知。谢谢!
    • @wis.niowy 你能接受这个答案,以便其他人可以快速解决问题吗?
    猜你喜欢
    • 1970-01-01
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    • 2014-02-16
    • 2022-10-06
    • 2018-07-21
    • 2020-01-15
    • 2019-03-03
    相关资源
    最近更新 更多