Skip to content

Commit 0ff33b1

Browse files
committed
work on xaml designer for net5
1 parent c9e2246 commit 0ff33b1

7 files changed

Lines changed: 63 additions & 38 deletions

File tree

WpfDesign.XamlDom/Project/PositionXmlDocument.cs

Lines changed: 54 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -147,28 +147,62 @@ public override void WriteTo(XmlWriter w)
147147
if (xmlWriterField != null)
148148
{
149149
var xmlwriter = xmlWriterField.GetValue(w);
150+
150151
var rawTextWPrp = xmlwriter.GetType()
151152
.GetProperty("InnerWriter", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
152-
var rawTextW = rawTextWPrp.GetValue(xmlwriter, null);
153-
var bufCharsField = rawTextW.GetType()
154-
.GetField("bufChars", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
155-
var contentPosField = rawTextW.GetType()
156-
.GetField("contentPos", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
157-
var buffPosField = rawTextW.GetType()
158-
.GetField("bufPos", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
159-
var ioTextWriterField = rawTextW.GetType()
160-
.GetField("writer", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
161-
var ioTextWriter = ioTextWriterField.GetValue(rawTextW);
162-
var sbField = ioTextWriter.GetType()
163-
.GetField("_sb", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
164-
positionXmlDocument.writerSb = sbField.GetValue(ioTextWriter) as StringBuilder;
165-
166-
positionXmlDocument.bufGetter =
167-
Expression.Lambda<Func<char[]>>(Expression.Field(Expression.Constant(rawTextW), bufCharsField)).Compile();
168-
positionXmlDocument.contentPosFieldGetter =
169-
Expression.Lambda<Func<int>>(Expression.Field(Expression.Constant(rawTextW), contentPosField)).Compile();
170-
positionXmlDocument.buffPosGetter =
171-
Expression.Lambda<Func<int>>(Expression.Field(Expression.Constant(rawTextW), buffPosField)).Compile();
153+
if (rawTextWPrp != null)
154+
{
155+
var rawTextW = rawTextWPrp.GetValue(xmlwriter, null);
156+
var bufCharsField = rawTextW.GetType()
157+
.GetField("bufChars", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
158+
var contentPosField = rawTextW.GetType()
159+
.GetField("contentPos", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
160+
var buffPosField = rawTextW.GetType()
161+
.GetField("bufPos", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
162+
var ioTextWriterField = rawTextW.GetType()
163+
.GetField("writer", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
164+
var ioTextWriter = ioTextWriterField.GetValue(rawTextW);
165+
var sbField = ioTextWriter.GetType()
166+
.GetField("_sb", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
167+
positionXmlDocument.writerSb = sbField.GetValue(ioTextWriter) as StringBuilder;
168+
169+
positionXmlDocument.bufGetter =
170+
Expression.Lambda<Func<char[]>>(Expression.Field(Expression.Constant(rawTextW), bufCharsField)).Compile();
171+
positionXmlDocument.contentPosFieldGetter =
172+
Expression.Lambda<Func<int>>(Expression.Field(Expression.Constant(rawTextW), contentPosField)).Compile();
173+
positionXmlDocument.buffPosGetter =
174+
Expression.Lambda<Func<int>>(Expression.Field(Expression.Constant(rawTextW), buffPosField)).Compile();
175+
}
176+
else
177+
{
178+
179+
rawTextWPrp = xmlwriter.GetType()
180+
.GetProperty("RawWriter", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
181+
if (rawTextWPrp != null)
182+
{
183+
var rawTextW = rawTextWPrp.GetValue(xmlwriter, null);
184+
var bufCharsField = rawTextW.GetType()
185+
.GetField("_bufChars", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
186+
var contentPosField = rawTextW.GetType()
187+
.GetField("_contentPos", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
188+
var buffPosField = rawTextW.GetType()
189+
.GetField("_bufPos", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
190+
var ioTextWriterField = rawTextW.GetType()
191+
.GetField("_writer", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
192+
var ioTextWriter = ioTextWriterField.GetValue(rawTextW);
193+
var sbField = ioTextWriter.GetType()
194+
.GetField("_sb", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
195+
positionXmlDocument.writerSb = sbField.GetValue(ioTextWriter) as StringBuilder;
196+
197+
positionXmlDocument.bufGetter =
198+
Expression.Lambda<Func<char[]>>(Expression.Field(Expression.Constant(rawTextW), bufCharsField)).Compile();
199+
positionXmlDocument.contentPosFieldGetter =
200+
Expression.Lambda<Func<int>>(Expression.Field(Expression.Constant(rawTextW), contentPosField)).Compile();
201+
positionXmlDocument.buffPosGetter =
202+
Expression.Lambda<Func<int>>(Expression.Field(Expression.Constant(rawTextW), buffPosField)).Compile();
203+
}
204+
}
205+
172206
}
173207
}
174208
catch(Exception)

XamlDesigner/AvalonDock/ActiveDocumentConverter.cs renamed to XamlDesigner/Converters/ActiveDocumentConverter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using System;
22
using System.Windows.Data;
33

4-
namespace ICSharpCode.XamlDesigner.AvalonDock
4+
namespace ICSharpCode.XamlDesigner.Converters
55
{
66
class ActiveDocumentConverter : IValueConverter
77
{

XamlDesigner/AvalonDock/PanesStyleSelector.cs renamed to XamlDesigner/Converters/PanesStyleSelector.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using System.Windows;
22
using System.Windows.Controls;
33

4-
namespace ICSharpCode.XamlDesigner.AvalonDock
4+
namespace ICSharpCode.XamlDesigner.Converters
55
{
66
class PanesStyleSelector : StyleSelector
77
{

XamlDesigner/AvalonDock/PanesTemplateSelector.cs renamed to XamlDesigner/Converters/PanesTemplateSelector.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
using System.Windows;
33
using System.Windows.Controls;
44

5-
namespace ICSharpCode.XamlDesigner.AvalonDock
5+
namespace ICSharpCode.XamlDesigner.Converters
66
{
77
class PanesTemplateSelector : DataTemplateSelector
88
{

XamlDesigner/MainWindow.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
xmlns:Default="clr-namespace:ICSharpCode.XamlDesigner"
88
xmlns:behaviorsEditor="clr-namespace:ICSharpCode.WpfDesign.Designer.ExpressionBlendInteractionAddon.BehaviorsEditor;assembly=ICSharpCode.WpfDesign.Designer.ExpressionBlendInteractionAddon"
99
xmlns:triggersEditor="clr-namespace:ICSharpCode.WpfDesign.Designer.ExpressionBlendInteractionAddon.TriggersEditor;assembly=ICSharpCode.WpfDesign.Designer.ExpressionBlendInteractionAddon"
10-
xmlns:avalonDockConv="clr-namespace:ICSharpCode.XamlDesigner.AvalonDock"
10+
xmlns:avalonDockConv="clr-namespace:ICSharpCode.XamlDesigner.Converters"
1111
xmlns:avalondock="https://github.com/Dirkster99/AvalonDock"
1212
SnapsToDevicePixels="True"
1313
AllowDrop="True"

XamlDesigner/Toolbox.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,17 @@
88
using System.Windows;
99
using System.Collections.Specialized;
1010
using ICSharpCode.WpfDesign;
11-
11+
using System.Windows.Controls;
12+
1213
namespace ICSharpCode.XamlDesigner
1314
{
1415
public class Toolbox
1516
{
1617
public Toolbox()
1718
{
1819
AssemblyNodes = new ObservableCollection<AssemblyNode>();
19-
LoadSettings();
20+
AddAssembly(typeof(Button).Assembly.Location);
21+
//LoadSettings();
2022
}
2123

2224
public static Toolbox Instance = new Toolbox();

XamlDesigner/app.config

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,7 @@
44
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
55
<section name="ICSharpCode.XamlDesigner.Configuration.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
66
</sectionGroup>
7-
</configSections>
8-
<startup>
9-
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
10-
</startup>
7+
</configSections>
118
<userSettings>
129
<ICSharpCode.XamlDesigner.Configuration.Settings>
1310
<setting name="MainWindowRect" serializeAs="String">
@@ -65,14 +62,6 @@
6562
&lt;Hidden /&gt;
6663
&lt;/LayoutRoot&gt;</value>
6764
</setting>
68-
<setting name="AssemblyList" serializeAs="Xml">
69-
<value>
70-
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
71-
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
72-
<string>%ProgramFiles%\Reference Assemblies\Microsoft\Framework\v3.0\PresentationFramework.dll</string>
73-
</ArrayOfString>
74-
</value>
75-
</setting>
7665
<setting name="MainWindowState" serializeAs="String">
7766
<value>Maximized</value>
7867
</setting>

0 commit comments

Comments
 (0)