我用 XAML 定义了一些东西,比如:
<Path Data="M16.25,11 L0.5,0.5 L32,0.5 z" Fill="#FFF4F4F5" Height="11" Margin="1.542,0.25,18.458,0" Stretch="Fill" Stroke="Black" UseLayoutRounding="False" VerticalAlignment="Top"/>
我可以在代码隐藏中做这样的事情吗:
Path myPath = Path.FromXAML("
<Path Data="M16.25,11 L0.5,0.5 L32,0.5 z" Fill="#FFF4F4F5" Height="11" Margin="1.542,0.25,18.458,0" Stretch="Fill" Stroke="Black" UseLayoutRounding="False" VerticalAlignment="Top"/>");
显然使用适当的转义字符以确保正确解析字符串。
我记得这是可能的,但我不记得具体情况了..
最佳答案
刚弄清楚,使用 XamlReader.Load 效果很好。
我必须对代码做的一个小修改是添加命名空间,因此要转换它:
<Path Data="M16.25,11 L0.5,0.5 L32,0.5 z" Fill="#FFF4F4F5" Height="11" Margin="1.542,0.25,18.458,0" Stretch="Fill" Stroke="Black" UseLayoutRounding="False" VerticalAlignment="Top"/>
要通过 XamlReader.Load 运行,我这样做:
Path p = XamlReader.Load(<Path **xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"** Data="M16.25,11 L0.5,0.5 L32,0.5 z" Fill="#FFF4F4F5" Height="11" Margin="1.542,0.25,18.458,0" Stretch="Fill" Stroke="Black" UseLayoutRounding="False" VerticalAlignment="Top"/>);
(显然还必须为引号添加转义字符)
关于c# - 在代码隐藏中从 XAML 创建控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8116739/