c# - 为 System.Windows.Shapes.Path 动态设置 Path.Data

标签 c# wpf

我正在编写以下代码以使用 System.Windows.Shapes.Path 创建图表。 现在我在 xaml 代码中设置它的 PathFigure:

<Grid FlowDirection="LeftToRight">
    <Canvas  HorizontalAlignment="Center" Name="PitchCanvas" VerticalAlignment="Center" Margin="30,0,370,470">
        <Canvas.RenderTransform>
            <ScaleTransform ScaleX="{Binding ElementName=SignalScaleSlider, Path=Value}" />
        </Canvas.RenderTransform>
        <Path Data="M 10,450 L 10,10 M 26,450 L 26,10 M 42,450 L 42,10 M 58,450 L 58,10 M 74,450 L 74,10 M 90,450 L 
              90,10 M 106,450 L 106,10 M 122,450 L 122,10  M 138,450 L 138,10 M 154,450 L 154,10 M 170,450 L 170,10
                  M 202,450 L 202,10 M 234,450 L 234,10 M 266,450 L 266,10 M 350,450 L 350,10
                  M 10,350 L 350,350 M 10,330 L 350,330 M 10,310 L 350,310 M 10,290 L 350,290 M 10,270 L 350,270 M 10,250 L 350,250
                  M 10,230 L 350,230 M 10,210 L 350,210 M 10,190 L 350,190 M 10,170 L 350,170 M 10,150 L 350,150 M 10,130 L 350,130 
                  M 10,110 L 350,110 M 10,90 L 350,90 M 10,70 L 350,70 M 10,50 L 350,50 M 10,30 L 350,30 M 10,10 L 350,10
                  " Height="454" Name="RangeSignalPath1" Stroke="Silver" StrokeThickness="0.5" />
        <Path Data=" M 10,450 L 350,450  M 10,330 L 350,330 M 10,230 L 350,230 M 10,130 L 350,130 M 10,30 L 350,30"
                  Name="RangeSignalPath2" Stroke="Silver" StrokeThickness="1" Height="387" />

有什么方法可以动态地(在 c# 代码中)而不是 xaml 代码来编写它的 Path'Data?

如您所见,设置它的值需要花费很多时间,但使用 for 循环会更简单。

最佳答案

根据需要创建字符串。使用 Geometry.Parse(),它返回您分配给 RangeSignalPath1.DataGeometry 对象:

Geometry g = Geometry.Parse(<your string>);
RangeSignalPath1.Data = g;

关于c# - 为 System.Windows.Shapes.Path 动态设置 Path.Data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21513528/

相关文章:

c# - 从代码后面带参数调用 javascript 函数

c# - 将字符串转换为任何格式的日期时间

c# - 什么是System.Void?

c# - WPF:多个屏幕

c# - 如何将 XAML 插入 RichTextBox?

c# - sleep 表现不符合预期

c# - 如何使用 Roslyn CSharpCompilation 避免内存泄漏

wpf - 在事件上使用 Setter

c# - 使用区域管理器导航到在区域中声明的选项卡控件的选项卡

c# - 如何在asp.net 网站中向sql server 中插入数据?