Browse Source

Merge pull request #650 from jogibear9988/master

A few Bugfixes for XAMLDesigner
pull/651/head
Andreas Weizel 10 years ago
parent
commit
812d417fd2
  1. 3
      samples/XamlDesigner/Document.cs
  2. 2
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/LineExtensionBase.cs
  3. 2
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/PathHandlerExtension.cs
  4. 20
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/PropertyGrid/Editors/NumberEditor.xaml.cs
  5. 13
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/MarkupExtensionPrinter.cs
  6. 1
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/WpfDesign.XamlDom.csproj
  7. 156
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/XamlXmlWriter.cs

3
samples/XamlDesigner/Document.cs

@ -11,6 +11,7 @@ using System.Xml; @@ -11,6 +11,7 @@ using System.Xml;
using ICSharpCode.WpfDesign;
using ICSharpCode.WpfDesign.Designer.Services;
using System.Diagnostics;
using ICSharpCode.WpfDesign.XamlDom;
namespace ICSharpCode.XamlDesigner
{
@ -196,7 +197,7 @@ namespace ICSharpCode.XamlDesigner @@ -196,7 +197,7 @@ namespace ICSharpCode.XamlDesigner
void UpdateXaml()
{
var sb = new StringBuilder();
using (var xmlWriter = XmlWriter.Create(sb)) {
using (var xmlWriter = new XamlXmlWriter(sb)) {
DesignSurface.SaveDesigner(xmlWriter);
Text = XamlFormatter.Format(sb.ToString());
}

2
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/LineExtensionBase.cs

@ -73,7 +73,7 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions @@ -73,7 +73,7 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
public LineExtensionBase()
{
_surface = new Canvas();
adornerPanel = new AdornerPanel();
adornerPanel = new AdornerPanel(){ MinWidth = 10, MinHeight = 10 };
adornerPanel.Order = AdornerOrder.Foreground;
adornerPanel.Children.Add(_surface);
Adorners.Add(adornerPanel);

2
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/PathHandlerExtension.cs

@ -580,7 +580,7 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions @@ -580,7 +580,7 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
saveDesignItem = () =>
{
dd.Properties["StartPoint"].SetValue(((PathFigure)dd.Component).StartPoint);
dd.Properties["Segments"].SetValue(((PathFigure)dd.Component).Segments);
//dd.Properties["Segments"].SetValue(((PathFigure)dd.Component).Segments);
};
list.Add(new PathPoint(figure.StartPoint, figure, null, (p) => figure.StartPoint = p, saveDesignItem, shape));
foreach (var s in figure.Segments) {

20
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/PropertyGrid/Editors/NumberEditor.xaml.cs

@ -117,16 +117,20 @@ namespace ICSharpCode.WpfDesign.Designer.PropertyGrid.Editors @@ -117,16 +117,20 @@ namespace ICSharpCode.WpfDesign.Designer.PropertyGrid.Editors
Maximum = range.Max;
}
if (Minimum == 0 && Maximum == 1) {
if (type == typeof(double) || type == typeof(decimal)) {
DecimalPlaces = 2;
SmallChange = 0.01;
LargeChange = 0.1;
}
else {
ClearValue(DecimalPlacesProperty);
ClearValue(SmallChangeProperty);
ClearValue(LargeChangeProperty);
}
// if (Minimum == 0 && Maximum == 1) {
// DecimalPlaces = 2;
// SmallChange = 0.01;
// LargeChange = 0.1;
// }
// else {
// ClearValue(DecimalPlacesProperty);
// ClearValue(SmallChangeProperty);
// ClearValue(LargeChangeProperty);
// }
}
public override void OnApplyTemplate()

13
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/MarkupExtensionPrinter.cs

@ -60,7 +60,7 @@ namespace ICSharpCode.WpfDesign.XamlDom @@ -60,7 +60,7 @@ namespace ICSharpCode.WpfDesign.XamlDom
var p=obj.Properties.FirstOrDefault(x=>x.PropertyName=="Path");
if (p!=null && p.IsSet) {
sb.Append(" ");
AppendPropertyValue(sb, p.PropertyValue);
AppendPropertyValue(sb, p.PropertyValue, false);
properties.Remove(p);
first = false;
}
@ -69,7 +69,7 @@ namespace ICSharpCode.WpfDesign.XamlDom @@ -69,7 +69,7 @@ namespace ICSharpCode.WpfDesign.XamlDom
var p=obj.Properties.FirstOrDefault(x=>x.PropertyName=="Name");
if (p!=null && p.IsSet) {
sb.Append(" ");
AppendPropertyValue(sb, p.PropertyValue);
AppendPropertyValue(sb, p.PropertyValue, false);
properties.Remove(p);
first = false;
}
@ -78,7 +78,7 @@ namespace ICSharpCode.WpfDesign.XamlDom @@ -78,7 +78,7 @@ namespace ICSharpCode.WpfDesign.XamlDom
var p=obj.Properties.FirstOrDefault(x=>x.PropertyName=="ResourceKey");
if (p!=null && p.IsSet) {
sb.Append(" ");
AppendPropertyValue(sb, p.PropertyValue);
AppendPropertyValue(sb, p.PropertyValue, false);
properties.Remove(p);
first = false;
}
@ -96,13 +96,13 @@ namespace ICSharpCode.WpfDesign.XamlDom @@ -96,13 +96,13 @@ namespace ICSharpCode.WpfDesign.XamlDom
sb.Append(property.GetNameForMarkupExtension());
sb.Append("=");
AppendPropertyValue(sb, property.PropertyValue);
AppendPropertyValue(sb, property.PropertyValue, property.ReturnType == typeof(string));
}
sb.Append("}");
return sb.ToString();
}
private static void AppendPropertyValue(StringBuilder sb, XamlPropertyValue value)
private static void AppendPropertyValue(StringBuilder sb, XamlPropertyValue value, bool isStringProperty)
{
var textValue = value as XamlTextValue;
if (textValue != null) {
@ -113,6 +113,9 @@ namespace ICSharpCode.WpfDesign.XamlDom @@ -113,6 +113,9 @@ namespace ICSharpCode.WpfDesign.XamlDom
sb.Append('\'');
}
if (isStringProperty)
sb.Append(text.Replace("\\", "\\\\").Replace("{", "\\{").Replace("}", "\\}"));
else
sb.Append(text.Replace("\\", "\\\\"));
if(containsSpace) {

1
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/WpfDesign.XamlDom.csproj

@ -94,5 +94,6 @@ @@ -94,5 +94,6 @@
<Compile Include="XamlTextValue.cs" />
<Compile Include="XamlTypeFinder.cs" />
<Compile Include="XamlTypeResolverProvider.cs" />
<Compile Include="XamlXmlWriter.cs" />
</ItemGroup>
</Project>

156
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/XamlXmlWriter.cs

@ -0,0 +1,156 @@ @@ -0,0 +1,156 @@
/*
* Created by SharpDevelop.
* User: jkuehner
* Date: 30.01.2015
* Time: 09:56
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Xml;
namespace ICSharpCode.WpfDesign.XamlDom
{
/// <summary>
/// Description of XamlXmlWriter.
/// </summary>
public class XamlXmlWriter : XmlWriter
{
protected XmlWriter xmlWriter;
public XamlXmlWriter(System.Text.StringBuilder stringBuilder)
{
this.xmlWriter = XmlWriter.Create(stringBuilder);
}
#region implemented abstract members of XmlWriter
public override void WriteStartDocument()
{
xmlWriter.WriteStartDocument();
}
public override void WriteStartDocument(bool standalone)
{
xmlWriter.WriteStartDocument(standalone);
}
public override void WriteEndDocument()
{
xmlWriter.WriteEndDocument();
}
public override void WriteDocType(string name, string pubid, string sysid, string subset)
{
xmlWriter.WriteDocType(name, pubid, sysid, subset);
}
public override void WriteStartElement(string prefix, string localName, string ns)
{
xmlWriter.WriteStartElement(prefix, localName, ns);
}
public override void WriteEndElement()
{
xmlWriter.WriteEndElement();
}
public override void WriteFullEndElement()
{
xmlWriter.WriteFullEndElement();
}
public override void WriteStartAttribute(string prefix, string localName, string ns)
{
xmlWriter.WriteStartAttribute(prefix, localName, ns);
}
public override void WriteEndAttribute()
{
xmlWriter.WriteEndAttribute();
}
public override void WriteCData(string text)
{
xmlWriter.WriteCData(text);
}
public override void WriteComment(string text)
{
xmlWriter.WriteComment(text);
}
public override void WriteProcessingInstruction(string name, string text)
{
xmlWriter.WriteProcessingInstruction(name, text);
}
public override void WriteEntityRef(string name)
{
xmlWriter.WriteEntityRef(name);
}
public override void WriteCharEntity(char ch)
{
xmlWriter.WriteCharEntity(ch);
}
public override void WriteWhitespace(string ws)
{
xmlWriter.WriteWhitespace(ws);
}
public override void WriteString(string text)
{
xmlWriter.WriteString(text.Replace("&","&amp;").Replace("\"","&quot;"));
}
public override void WriteSurrogateCharEntity(char lowChar, char highChar)
{
xmlWriter.WriteSurrogateCharEntity(lowChar, highChar);
}
public override void WriteChars(char[] buffer, int index, int count)
{
xmlWriter.WriteChars(buffer, index, count);
}
public override void WriteRaw(char[] buffer, int index, int count)
{
xmlWriter.WriteRaw(buffer, index, count);
}
public override void WriteRaw(string data)
{
xmlWriter.WriteRaw(data);
}
public override void WriteBase64(byte[] buffer, int index, int count)
{
xmlWriter.WriteBase64(buffer, index, count);
}
public override void Close()
{
xmlWriter.Close();
}
public override void Flush()
{
xmlWriter.Flush();
}
public override string LookupPrefix(string ns)
{
return xmlWriter.LookupPrefix(ns);
}
public override WriteState WriteState {
get {
return xmlWriter.WriteState;
}
}
#endregion
}
}
Loading…
Cancel
Save