C# 如何在WPF中按给定百分比绘制圆形扇区?

C# 如何在WPF中按给定百分比绘制圆形扇区?,c#,wpf,C#,Wpf,我试着按给定的百分比画一个圆圈。例如,如果给定值50,我将画一个半圆。我尝试了第一个解决方案 这对我不起作用,并在设计器中显示: 如何修改第一个解决方案,或者是否有更好的解决方案来为我的案例绘制一个圆的扇形?这将起作用,但您必须计算70.7值,并通过绑定将其传递给XAML 要将角度转换为x和y坐标,需要使用以弧度为单位的Math.Sin和Math.Cos函数。通过乘以2*PI并除以100%,可以将百分比转换为以弧度为单位的角度,其组合方式如下: var x = Math.Cos(myAng

我试着按给定的百分比画一个圆圈。例如,如果给定值50,我将画一个半圆。我尝试了第一个解决方案


这对我不起作用,并在设计器中显示:


如何修改第一个解决方案,或者是否有更好的解决方案来为我的案例绘制一个圆的扇形?

这将起作用,但您必须计算
70.7
值,并通过绑定将其传递给XAML

要将角度转换为x和y坐标,需要使用以弧度为单位的
Math.Sin
Math.Cos
函数。通过乘以
2*PI
并除以100%,可以将百分比转换为以弧度为单位的角度,其组合方式如下:

var x = Math.Cos(myAngle * Math.Pi / 50)
var y = Math.Sin(myAngle * Math.Pi / 50)

如果我理解正确,那么正70.7是x,负70.7是y?为什么扇形显示在设计器之外(问题中的图像),我如何解决这个问题?在
路径中,M表示起始点,所以将起始点移向中心(例如
M200200
)'L0,-100'是一条在水平方向上画一条0像素线,向下画一条-100像素线(即从窗口顶部向上画100像素线)的指令。坐标从左上角开始,因此负y值在窗口顶部上方(或相对值在起点上方)
var x = Math.Cos(myAngle * Math.Pi / 50)
var y = Math.Sin(myAngle * Math.Pi / 50)