gpt4 book ai didi

c# - 在代码隐藏中设置 Path.Data

转载 作者:行者123 更新时间:2023-12-02 15:23:59 26 4
gpt4 key购买 nike

我有这个 XAML 代码,它创建了一个位于 MainPage.xaml 页面中的 Canvas 内的 Path

<Path x:Name="progressPath" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Stroke="Gold" StrokeThickness="5"
Canvas.Left="300" Canvas.Top="300" Height="305" Width="305"
Data="m 150,0 A 150,0 0 0 0 150,0 A 150,150 0 0 0 150,0">
</Path>

我想要有几个像这样的Path(例如,当用户点击按钮时会创建一个新的Path),所以我决定创建它们位于代码隐藏中 - 这似乎是不可能的。

PathData 填充有 move and draw commands语法不能直接用作代码隐藏中的文本值(如上所示),就像在 xaml 中一样 - 我发现 workarounds for this在 Silverlight 中,我在 Metro/Windows-Store 应用程序中尝试了相同的技术,但尽管它编译正确,但屏幕上没有 Path

<小时/>

tl;dr 如何在代码隐藏中创建此 Path 并使用如图所示的 Data

最佳答案

不久前我在winrt中也遇到了这个问题。似乎您不能直接在代码后面指定“路径”值。

但是有一个解决方案here

我在winrt中使用这个类没有任何问题。我所要做的就是更改 Convert 和 ConvertBack 方法的签名以实现 IValueConverter 接口(interface),因为它是在 winrt 中而不是 silverlight 中。他们在这里

public object Convert(object value, Type targetType, object parameter, string language)
{
string path = value as string;
if (null != path)
return Convert(path);
else
return null;
}

public object ConvertBack(object value, Type targetType, object parameter, string language)
{
PathGeometry geometry = value as PathGeometry;

if (null != geometry)
return ConvertBack(geometry);
else
return default(string);
}

用法:(或多或少)

var stringToPathGeometryConverter = new StringToPathGeometryConverter();
string pathData = "m 150,0 A 150,0 0 0 0 150,0 A 150,150 0 0 0 150,0" ;
progressPath.Data = stringToPathGeometryConverter.Convert(pathData);

关于c# - 在代码隐藏中设置 Path.Data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31019687/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com