c# - 在代码隐藏中从 XAML 创建控件?

标签 c# silverlight xaml code-behind

我用 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/

相关文章:

c# - 当我将 OrderBy 放在查询开头时,为什么 EF 会添加大量未使用的 OUTER APPLY 子句

c# - 如何从 Windows Phone 8.1 Silverlight 中的列表框中删除所选项目

c# - TreeView SelectedItem 行为 - 双向绑定(bind)在一个方向上不起作用

c# - 如何使用 SQLite 数据库中的数据填充 ListView

wpf - 附加属性的各种用途是什么?

c# - ASP.NET Core RC2 和 .NET 4.5.1 应用程序之间的共享 cookie 身份验证

c# - 使用 log4net 批量记录到 SQL Server

c# - .NET 短唯一标识符

c# - WPF 文档查看器页面大小

c# - Silverlight 应用程序中的字符串本地化问题