C# 图形类的方法在哪里?

C# 图形类的方法在哪里?,c#,wpf,winforms,C#,Wpf,Winforms,我试图在一个新的WPF项目中重用一个很久以前在Windows窗体中实现的类。此类重写使用在窗体上绘制各种对象的对象Graphics的OnRender方法。现在我正在WPF中使用我的类,我用DrawingContext对象替换了Graphics对象,但是Graphics类的一些方法没有实现。特别是FillPie,FillEllipse,DrawBeziers是我需要的方法。 是否存在实现这些方法的类?如何实现这些方法?这是一个简单的示例,说明了类似的方法在实践中是如何工作的 <Window

我试图在一个新的WPF项目中重用一个很久以前在Windows窗体中实现的类。此类重写使用在窗体上绘制各种对象的对象
Graphics
OnRender
方法。现在我正在WPF中使用我的类,我用
DrawingContext
对象替换了
Graphics
对象,但是
Graphics
类的一些方法没有实现。特别是
FillPie
FillEllipse
DrawBeziers
是我需要的方法。
是否存在实现这些方法的类?如何实现这些方法?

这是一个简单的示例,说明了类似的方法在实践中是如何工作的

<Window x:Class="WpfApplication4.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow"
        Width="500"
        Height="500">
    <StackPanel>
        <Slider Name="PositionSlider"
                Margin="10"
                Maximum="50"
                Minimum="1"
                Value="10" />
        <Canvas Width="300" Height="300">
            <Path Fill="Gold"
                  Stroke="Black"
                  StrokeThickness="1">
                <Path.Data>
                    <EllipseGeometry Center="150,150"
                                     RadiusX="{Binding ElementName=PositionSlider,
                                                       Path=Value}"
                                     RadiusY="{Binding ElementName=PositionSlider,
                                                       Path=Value}" />
                </Path.Data>
            </Path>
        </Canvas>
    </StackPanel>
</Window>

上面的WPF显示了一个简单的滑块和一个圆。圆的半径与滑块的值进行数据绑定。当您移动滑块时,圆圈会变大或变小。在旧世界中,当滑块(即缩放状态更改)时,您将得到一个重绘,其中您将绘制一个更大更小的圆。但在WPF世界中,这是由依赖属性和数据绑定处理的


上面的示例非常简单,您可以通过使用值转换器和对象执行多绑定绑定来完成更复杂的工作,这些值转换器和对象实现了依赖属性和INotifyPropertyChanged,所有这些都无法用一个答案来解释。

这是一个简单的示例,说明了类似的操作在实践中是如何工作的

<Window x:Class="WpfApplication4.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow"
        Width="500"
        Height="500">
    <StackPanel>
        <Slider Name="PositionSlider"
                Margin="10"
                Maximum="50"
                Minimum="1"
                Value="10" />
        <Canvas Width="300" Height="300">
            <Path Fill="Gold"
                  Stroke="Black"
                  StrokeThickness="1">
                <Path.Data>
                    <EllipseGeometry Center="150,150"
                                     RadiusX="{Binding ElementName=PositionSlider,
                                                       Path=Value}"
                                     RadiusY="{Binding ElementName=PositionSlider,
                                                       Path=Value}" />
                </Path.Data>
            </Path>
        </Canvas>
    </StackPanel>
</Window>

上面的WPF显示了一个简单的滑块和一个圆。圆的半径与滑块的值进行数据绑定。当您移动滑块时,圆圈会变大或变小。在旧世界中,当滑块(即缩放状态更改)时,您将得到一个重绘,其中您将绘制一个更大更小的圆。但在WPF世界中,这是由依赖属性和数据绑定处理的


上面的示例非常简单,您可以通过使用值转换器和对象执行多绑定绑定来完成更复杂的工作,这些值转换器和对象实现了依赖属性和INotifyPropertyChanged,所有这些都无法在一个答案中解释。

WPF使用保留的图形。。。并不是每一次油漆都会被召回。您可以使用WPF图形原语来合成要渲染的内容和位置,WPF渲染引擎会处理REST。因此,我会在绘图模式下绘制图形?问题是,这些图形表示GMAP的标记,尺寸根据缩放和构造函数中设置的某些参数而变化。理论上,这些标记可以被数据绑定到缩放和其他参数,以便在从属参数发生变化时自动更新。我想在onResume方法中重新绘制图形就像我以前做的那样。我能做到吗?你能给我演示一下如何创建贝塞尔、圆锥体或椭圆等图形的例子吗?WPF使用保留图形。。。并不是每一次油漆都会被召回。您可以使用WPF图形原语来合成要渲染的内容和位置,WPF渲染引擎会处理REST。因此,我会在绘图模式下绘制图形?问题是,这些图形表示GMAP的标记,尺寸根据缩放和构造函数中设置的某些参数而变化。理论上,这些标记可以被数据绑定到缩放和其他参数,以便在从属参数发生变化时自动更新。我想在onResume方法中重新绘制图形就像我以前做的那样。我能做到吗?你能给我展示一下如何制作贝塞尔、圆锥体或椭圆等图形的例子吗?很好的例子!谢谢如何在wpf中绘制非“本地”的几何图形?作为贝齐尔还是拱门?对于arch,我找到了DrawingContext类的扩展方法,但是如何绑定属性呢?图形是以编程方式绘制的,而不是通过xaml?处理贝塞尔等事情。。。。你说的拱门是什么意思。。。你是说arc吗?太好了,谢谢你的帮助!是的,我是说弧。对不起,我的英语不好,这是一个很好的例子!谢谢如何在wpf中绘制非“本地”的几何图形?作为贝齐尔还是拱门?对于arch,我找到了DrawingContext类的扩展方法,但是如何绑定属性呢?图形是以编程方式绘制的,而不是通过xaml?处理贝塞尔等事情。。。。你说的拱门是什么意思。。。你是说arc吗?太好了,谢谢你的帮助!是的,我是说弧。对不起,我英语不好