在代码隐藏中从XAML创建控件
本文关键字:XAML 创建 控件 代码 隐藏 | 更新日期: 2023-09-27 18:14:44
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"/>
我可以在codebehind中做这样的事情吗:
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运行。加载I do:
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"/>);
(显然还必须为引号添加转义字符)