将WPF XAML转换为Silverlight XAML
我有关于在WPF和Silverlight平台上使用XAML的问题。
背景:
我有一个Silverlight应用程序需要将Xaml传递给WPF,并执行一些计算来更新XAML。 当我在WPF中运行更改时,我解析XAML并将其转换为Canvas对象,该工作完美无瑕。 问题是WPF去掉了silverlight命名空间,甚至删除了一些元素的名称。
我用来将XAML转换为Canvas的代码
Canvas canvas = XamlReader.Parse(xaml) as Canvas
这里是Silverlight的原始Xaml:
<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Name="Holder" Width="58" Height="23" >
.......
在将其转换为Canvas对象后,Canvas的Xaml变为:
<Canvas Name="Holder" Width="58" Height="23" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<Canvas.Clip><RectangleGeometry RadiusX="0" RadiusY="0" Rect="0,0,58,23"/>
</Canvas.Clip><Rectangle Name="HolderBackground" Canvas.Top="0.4" Canvas.Left="0.4" Width="57.2" Height="22.2" RadiusX="0" RadiusY="0" Fill="#FFFFFF" />
<Canvas Name="Image1" Canvas.Top="0.8" Canvas.Left="0.8" Width="24.37999153137207" Height="21.4"> .......
您应该注意到xmlns:x =“http://schemas.microsoft.com/winfx/2006/xaml”缺失。 而且,所有的x:Name现在都变成了Name。 如果仔细观察,您会注意到此元素的名称已被删除
每个人都有任何想法或简单的解决方案,我可以转换Silverlight XAML - > WPF XAML - >(回到)Silverlight XAML?
干杯
看起来我必须自己回答这个问题,但这不是一个明确的答案
有人写了一个自定义XamlWriter类来解决问题的一部分,但RectangleGeometry问题的缺失名称仍然存在http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/08aebbf1-0a61-4305 -83b2-a0a37bb24002
链接地址: http://www.djcxy.com/p/5889.html