Expression Blend 3 is not happy
#1
Expression blend 3 is not happy with xaml generated by the viewer
The editor/canvas is not correct in blend
The code looks fine in Silverlight

(See images or attached)

Please advise

Thank you!

[Image: http://www.thesquaredt.com/public/Expression3.png]
[Image: http://www.thesquaredt.com/public/ViewerSvg.png]
#2
Just a follow-up:
I wrote a simple conversion app to make the generated xaml attributes Expression Blend friendly
After working with the objects exported to xml, I found myself not needing Blend

Nicely done!
(Hope to see your WPF only products made available to Silverlight...)
#3
ttiggemann, May I ask you what have you done to make the xaml Blend friendly.

I would like to add this to the my reader products, so there would not be a need for custom convertion applications.
#4
As stated, not that robust - could probably be optimized a tad
I've condensed it a bit for this post

Code:
using System.IO;
using System.Linq;
using System.Xml.Linq;

namespace ConvertWpfToSL
{
    class Program
    {
        static void Main(string[] args)
        {
            var testFile = File.OpenText(args[0]);
            var oldXmlSnippet = testFile.ReadToEnd();
            var newXmlSnippet = WpfXaml.Convert(oldXmlSnippet).ToString();
        }
    }

    public class WpfXaml
    {
        const string CCanvas = "Canvas";
        const string CMatrix = "Matrix";
        const string CRenderTransform = "RenderTransform";
        const string CMatrixTransform = "MatrixTransform";
        const string CCanvasRenderTransform = CCanvas + "." + CRenderTransform;

        public static XElement Convert(string xmlSnippet)
        {
            var doc = XDocument.Parse(xmlSnippet);
            var root = doc.Elements().ElementAt(0);
            return Convert(root);
        }

        private static XElement Convert(XElement el)
        {
            var canvasElements = el.Elements(el.Name.Namespace + CCanvas);
            var attr = el.Attribute(CRenderTransform);
            if (attr != null)
            {
                var newCanvasElement = new XElement(CCanvasRenderTransform);
                var newMatrixTransform = new XElement(CMatrixTransform);
                newMatrixTransform.SetAttributeValue(CMatrix, attr.Value);
                newCanvasElement.Add(newMatrixTransform);
                el.AddFirst(newCanvasElement);
                attr.Remove();
            }
            foreach (var elem in canvasElements)
                Convert(elem);

            return el;
        }
    }
}
#5
ttiggemann, thank you for sharing this with us.

I will add an option to ViewerSvg, Paste2Xaml and GetXaml method in reader libraries to provide xaml that will be valid in Expression Blend.
#6
Just FYI:
VS2010 is not happy either:

"Unknown element: Brush. [Line: 1 Position: 93]
at MS.Internal.XcpImports.CreateFromXaml(String xamlString, Boolean createNamescope, Boolean requireDefaultNamespace, Boolean allowEventHandlers, Boolean expandTemplatesDuringParse)
at Microsoft.Expression.Platform.Silverlight.TypeConverters.ConvertUsingXamlReaderConverter`1.ConvertFromStringInternal(String value, IFormatProvider provider)
at Microsoft.Expression.Platform.Silverlight.TypeConverters.ConvertToFromStringConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value)
at System.ComponentModel.TypeConverter.ConvertFromInvariantString(String text)
at Microsoft.Expression.DesignModel.InstanceBuilders.ClrObjectInstanceBuilder.InstantiateTargetType(IInstanceBuilderContext context, ViewNode viewNode)"


Is there an ETA of when your changes will be available?

Thank you!
#7
Hm, this looks very critical.

I will try to prepare updates until the end of this week.
#8
I would like to inform you that I have just published an improved version of ReaderSvg that provides a workaround for the Blend and VS designer.

See more here:
http://blog.wpf-graphics.com/post/2010/0...Blend.aspx

Thank you for reporting the problem.
#9
Finally got the chance to try your updates in v2.2
Looks great, works great!

"Add default namespaces" is certainly a timesaver

A couple of items on my "wish list":
The ability to name the top level node
The ability to specify a background color (mouse events are ignored if no background)

Thank you!
  


Forum Jump:


Users browsing this thread:
1 Guest(s)