12 changed files with 0 additions and 535 deletions
@ -1,9 +0,0 @@ |
|||||||
<Application x:Class="StandaloneDesigner.App" |
|
||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
|
||||||
StartupUri="Window1.xaml" |
|
||||||
> |
|
||||||
<Application.Resources> |
|
||||||
|
|
||||||
</Application.Resources> |
|
||||||
</Application> |
|
||||||
@ -1,22 +0,0 @@ |
|||||||
using System; |
|
||||||
using System.Windows; |
|
||||||
using System.Data; |
|
||||||
using System.Xml; |
|
||||||
using System.Configuration; |
|
||||||
|
|
||||||
namespace StandaloneDesigner |
|
||||||
{ |
|
||||||
/// <summary>
|
|
||||||
/// Interaction logic for App.xaml
|
|
||||||
/// </summary>
|
|
||||||
|
|
||||||
public partial class App : Application |
|
||||||
{ |
|
||||||
|
|
||||||
public App() |
|
||||||
{ |
|
||||||
InitializeComponent(); |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
||||||
} |
|
||||||
@ -1,39 +0,0 @@ |
|||||||
#region Using directives
|
|
||||||
|
|
||||||
using System.Reflection; |
|
||||||
using System.Runtime.CompilerServices; |
|
||||||
using System.Resources; |
|
||||||
using System.Globalization; |
|
||||||
using System.Windows; |
|
||||||
using System.Runtime.InteropServices; |
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
// General Information about an assembly is controlled through the following
|
|
||||||
// set of attributes. Change these attribute values to modify the information
|
|
||||||
// associated with an assembly.
|
|
||||||
[assembly: AssemblyTitle("StandaloneDesigner")] |
|
||||||
[assembly: AssemblyDescription("")] |
|
||||||
[assembly: AssemblyConfiguration("")] |
|
||||||
[assembly: AssemblyTrademark("")] |
|
||||||
[assembly: AssemblyCulture("")] |
|
||||||
|
|
||||||
//In order to begin building localizable applications, set
|
|
||||||
//<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file
|
|
||||||
//inside a <PropertyGroup>. For example, if you are using US english
|
|
||||||
//in your source files, set the <UICulture> to en-US. Then uncomment
|
|
||||||
//the NeutralResourceLanguage attribute below. Update the "en-US" in
|
|
||||||
//the line below to match the UICulture setting in the project file.
|
|
||||||
|
|
||||||
//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
|
|
||||||
|
|
||||||
|
|
||||||
[assembly: ThemeInfo( |
|
||||||
ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
|
|
||||||
//(used if a resource is not found in the page,
|
|
||||||
// or application resource dictionaries)
|
|
||||||
ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
|
|
||||||
//(used if a resource is not found in the page,
|
|
||||||
// app, or any theme specific resource dictionaries)
|
|
||||||
)] |
|
||||||
|
|
||||||
@ -1,57 +0,0 @@ |
|||||||
// <file>
|
|
||||||
// <copyright see="prj:///doc/copyright.txt"/>
|
|
||||||
// <license see="prj:///doc/license.txt"/>
|
|
||||||
// <owner name="Daniel Grunwald" email="daniel@danielgrunwald.de"/>
|
|
||||||
// <version>$Revision: 2667$</version>
|
|
||||||
// </file>
|
|
||||||
|
|
||||||
using System; |
|
||||||
using System.ComponentModel; |
|
||||||
using System.Windows; |
|
||||||
using System.Windows.Controls; |
|
||||||
using ICSharpCode.WpfDesign; |
|
||||||
|
|
||||||
namespace StandaloneDesigner |
|
||||||
{ |
|
||||||
sealed class EventHandlerService : IEventHandlerService |
|
||||||
{ |
|
||||||
Window1 mainWindow; |
|
||||||
|
|
||||||
public EventHandlerService(Window1 mainWindow) |
|
||||||
{ |
|
||||||
this.mainWindow = mainWindow; |
|
||||||
} |
|
||||||
|
|
||||||
public void CreateEventHandler(DesignItemProperty eventProperty) |
|
||||||
{ |
|
||||||
var item = eventProperty.DesignItem; |
|
||||||
string handlerName = (string)eventProperty.ValueOnInstance; |
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(handlerName)) { |
|
||||||
string prefix = item.Name; |
|
||||||
if (string.IsNullOrEmpty(prefix)) { |
|
||||||
//TODO
|
|
||||||
prefix = item.ComponentType.Name; |
|
||||||
} |
|
||||||
|
|
||||||
handlerName = prefix + eventProperty.Name; |
|
||||||
eventProperty.SetValue(handlerName); |
|
||||||
} |
|
||||||
|
|
||||||
MessageBox.Show("show " + handlerName); |
|
||||||
} |
|
||||||
|
|
||||||
public DesignItemProperty GetDefaultEvent(DesignItem item) |
|
||||||
{ |
|
||||||
object[] attributes = item.ComponentType.GetCustomAttributes(typeof(DefaultEventAttribute), true); |
|
||||||
if (attributes.Length == 1) { |
|
||||||
DefaultEventAttribute dae = (DefaultEventAttribute)attributes[0]; |
|
||||||
DesignItemProperty property = item.Properties.GetProperty(dae.Name); |
|
||||||
if (property != null && property.IsEvent) { |
|
||||||
return property; |
|
||||||
} |
|
||||||
} |
|
||||||
return null; |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
@ -1,31 +0,0 @@ |
|||||||
<Window xmlns="http://schemas.microsoft.com/netfx/2007/xaml/presentation" |
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
|
||||||
Title="WindowTitle" |
|
||||||
BorderThickness="10" |
|
||||||
Width="400" |
|
||||||
Height="300"> |
|
||||||
<StackPanel> |
|
||||||
<Canvas Height="50"> |
|
||||||
<Button>CB</Button> |
|
||||||
</Canvas> |
|
||||||
<TabControl MinHeight="150"> |
|
||||||
<TabItem Header="StackPanel"> |
|
||||||
<StackPanel> |
|
||||||
<Button>a</Button> |
|
||||||
</StackPanel> |
|
||||||
</TabItem> |
|
||||||
<TabItem Header="Button"> |
|
||||||
<Button>button on page 2</Button> |
|
||||||
</TabItem> |
|
||||||
<TabItem Header="Canvas"> |
|
||||||
<Canvas /> |
|
||||||
</TabItem> |
|
||||||
<TabItem Header="Grid"> |
|
||||||
<Grid /> |
|
||||||
</TabItem> |
|
||||||
<TabItem Header="DockPanel"> |
|
||||||
<DockPanel /> |
|
||||||
</TabItem> |
|
||||||
</TabControl> |
|
||||||
</StackPanel> |
|
||||||
</Window> |
|
||||||
|
Before Width: | Height: | Size: 575 B |
|
Before Width: | Height: | Size: 724 B |
|
Before Width: | Height: | Size: 788 B |
@ -1,89 +0,0 @@ |
|||||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5"> |
|
||||||
<PropertyGroup> |
|
||||||
<ProjectGuid>{84D65E9C-B66C-44C3-95FD-445EFE3ED322}</ProjectGuid> |
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> |
|
||||||
<OutputType>WinExe</OutputType> |
|
||||||
<RootNamespace>StandaloneDesigner</RootNamespace> |
|
||||||
<AssemblyName>StandaloneDesigner</AssemblyName> |
|
||||||
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion> |
|
||||||
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> |
|
||||||
<FileUpgradeFlags> |
|
||||||
</FileUpgradeFlags> |
|
||||||
<OldToolsVersion>2.0</OldToolsVersion> |
|
||||||
<UpgradeBackupLocation> |
|
||||||
</UpgradeBackupLocation> |
|
||||||
</PropertyGroup> |
|
||||||
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' "> |
|
||||||
<OutputPath>bin\Debug\</OutputPath> |
|
||||||
<DebugSymbols>True</DebugSymbols> |
|
||||||
<DebugType>Full</DebugType> |
|
||||||
<CheckForOverflowUnderflow>True</CheckForOverflowUnderflow> |
|
||||||
<DefineConstants>DEBUG;TRACE</DefineConstants> |
|
||||||
</PropertyGroup> |
|
||||||
<PropertyGroup Condition=" '$(Configuration)' == 'Release' "> |
|
||||||
<OutputPath>bin\Release\</OutputPath> |
|
||||||
<DebugSymbols>False</DebugSymbols> |
|
||||||
<DebugType>None</DebugType> |
|
||||||
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow> |
|
||||||
<DefineConstants>TRACE</DefineConstants> |
|
||||||
</PropertyGroup> |
|
||||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" /> |
|
||||||
<ItemGroup> |
|
||||||
<Reference Include="PresentationCore" /> |
|
||||||
<Reference Include="PresentationFramework" /> |
|
||||||
<Reference Include="ReachFramework" /> |
|
||||||
<Reference Include="System" /> |
|
||||||
<Reference Include="System.Core"> |
|
||||||
<RequiredTargetFramework>3.5</RequiredTargetFramework> |
|
||||||
</Reference> |
|
||||||
<Reference Include="System.Data" /> |
|
||||||
<Reference Include="System.IdentityModel" /> |
|
||||||
<Reference Include="System.Printing" /> |
|
||||||
<Reference Include="System.Runtime.Serialization" /> |
|
||||||
<Reference Include="System.ServiceModel" /> |
|
||||||
<Reference Include="System.Xml" /> |
|
||||||
<Reference Include="UIAutomationProvider" /> |
|
||||||
<Reference Include="UIAutomationTypes" /> |
|
||||||
<Reference Include="WindowsBase" /> |
|
||||||
</ItemGroup> |
|
||||||
<ItemGroup> |
|
||||||
<ApplicationDefinition Include="App.xaml"> |
|
||||||
<Generator>MSBuild:Compile</Generator> |
|
||||||
<SubType>Designer</SubType> |
|
||||||
</ApplicationDefinition> |
|
||||||
<Compile Include="..\..\..\..\Main\GlobalAssemblyInfo.cs"> |
|
||||||
<Link>GlobalAssemblyInfo.cs</Link> |
|
||||||
</Compile> |
|
||||||
<Compile Include="App.xaml.cs"> |
|
||||||
<SubType>Code</SubType> |
|
||||||
<DependentUpon>App.xaml</DependentUpon> |
|
||||||
</Compile> |
|
||||||
<Compile Include="AssemblyInfo.cs" /> |
|
||||||
<Compile Include="EventHandlerService.cs" /> |
|
||||||
<Compile Include="Toolbox.cs" /> |
|
||||||
<Compile Include="Window1.xaml.cs"> |
|
||||||
<SubType>Code</SubType> |
|
||||||
<DependentUpon>Window1.xaml</DependentUpon> |
|
||||||
</Compile> |
|
||||||
<None Include="Files\1.xaml"> |
|
||||||
<SubType>Designer</SubType> |
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> |
|
||||||
</None> |
|
||||||
<Page Include="Window1.xaml"> |
|
||||||
<Generator>MSBuild:Compile</Generator> |
|
||||||
<SubType>Designer</SubType> |
|
||||||
</Page> |
|
||||||
<ProjectReference Include="..\WpfDesign.Designer\Project\WpfDesign.Designer.csproj"> |
|
||||||
<Project>{78CC29AC-CC79-4355-B1F2-97936DF198AC}</Project> |
|
||||||
<Name>WpfDesign.Designer</Name> |
|
||||||
</ProjectReference> |
|
||||||
<ProjectReference Include="..\WpfDesign\Project\WpfDesign.csproj"> |
|
||||||
<Project>{66A378A1-E9F4-4AD5-8946-D0EC06C2902F}</Project> |
|
||||||
<Name>WpfDesign</Name> |
|
||||||
</ProjectReference> |
|
||||||
<Resource Include="Images\Redo.png" /> |
|
||||||
<Resource Include="Images\Undo.png" /> |
|
||||||
<Resource Include="Images\Delete.png" /> |
|
||||||
</ItemGroup> |
|
||||||
</Project> |
|
||||||
@ -1,116 +0,0 @@ |
|||||||
using System; |
|
||||||
using System.Collections.Generic; |
|
||||||
using System.Diagnostics; |
|
||||||
using System.Text; |
|
||||||
using System.Windows; |
|
||||||
using System.Windows.Controls; |
|
||||||
using System.Windows.Data; |
|
||||||
using System.Windows.Documents; |
|
||||||
using System.Windows.Input; |
|
||||||
using System.Windows.Media; |
|
||||||
using System.Windows.Media.Imaging; |
|
||||||
using System.Windows.Navigation; |
|
||||||
using System.Windows.Shapes; |
|
||||||
using ICSharpCode.WpfDesign; |
|
||||||
using ICSharpCode.WpfDesign.Designer; |
|
||||||
using ICSharpCode.WpfDesign.Designer.Services; |
|
||||||
|
|
||||||
namespace StandaloneDesigner |
|
||||||
{ |
|
||||||
public partial class Toolbox : ListBox |
|
||||||
{ |
|
||||||
public Toolbox() |
|
||||||
{ |
|
||||||
this.SelectionMode = SelectionMode.Single; |
|
||||||
} |
|
||||||
|
|
||||||
IToolService toolService; |
|
||||||
|
|
||||||
public IToolService ToolService { |
|
||||||
get { return toolService; } |
|
||||||
set { |
|
||||||
if (toolService != null) { |
|
||||||
toolService.CurrentToolChanged -= OnCurrentToolChanged; |
|
||||||
} |
|
||||||
toolService = value; |
|
||||||
this.Items.Clear(); |
|
||||||
if (toolService != null) { |
|
||||||
AddTool("Pointer", toolService.PointerTool); |
|
||||||
|
|
||||||
foreach (Type t in DesignSurface.SupportedToolboxControls) |
|
||||||
AddTool(t); |
|
||||||
|
|
||||||
toolService.CurrentToolChanged += OnCurrentToolChanged; |
|
||||||
OnCurrentToolChanged(null, null); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
void AddTool(Type componentType) |
|
||||||
{ |
|
||||||
AddTool(componentType.Name, new CreateComponentTool(componentType)); |
|
||||||
} |
|
||||||
|
|
||||||
void AddTool(string title, ITool tool) |
|
||||||
{ |
|
||||||
ListBoxItem item = new ListBoxItem(); |
|
||||||
item.Content = title; |
|
||||||
item.Tag = tool; |
|
||||||
this.Items.Add(item); |
|
||||||
} |
|
||||||
|
|
||||||
void OnCurrentToolChanged(object sender, EventArgs e) |
|
||||||
{ |
|
||||||
Debug.WriteLine("Toolbox.OnCurrentToolChanged"); |
|
||||||
for (int i = 0; i < this.Items.Count; i++) { |
|
||||||
if (((ListBoxItem)this.Items[i]).Tag == toolService.CurrentTool) { |
|
||||||
this.SelectedIndex = i; |
|
||||||
return; |
|
||||||
} |
|
||||||
} |
|
||||||
this.SelectedIndex = -1; |
|
||||||
} |
|
||||||
|
|
||||||
protected override void OnSelectionChanged(SelectionChangedEventArgs e) |
|
||||||
{ |
|
||||||
base.OnSelectionChanged(e); |
|
||||||
|
|
||||||
Debug.WriteLine("Toolbox.OnSelectionChanged"); |
|
||||||
if (toolService != null && this.SelectedItem is ListBoxItem) { |
|
||||||
toolService.CurrentTool = (ITool)(this.SelectedItem as ListBoxItem).Tag; |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
Point startPos; |
|
||||||
bool canStartDrag; |
|
||||||
|
|
||||||
protected override void OnPreviewMouseLeftButtonDown(MouseButtonEventArgs e) |
|
||||||
{ |
|
||||||
startPos = e.GetPosition(this); |
|
||||||
canStartDrag = true; |
|
||||||
|
|
||||||
base.OnPreviewMouseLeftButtonDown(e); |
|
||||||
} |
|
||||||
|
|
||||||
protected override void OnMouseMove(MouseEventArgs e) |
|
||||||
{ |
|
||||||
if (canStartDrag && e.LeftButton == MouseButtonState.Pressed) { |
|
||||||
if ((e.GetPosition(this) - startPos).LengthSquared > 4) { |
|
||||||
canStartDrag = false; |
|
||||||
|
|
||||||
if (this.SelectedItem == null) |
|
||||||
return; |
|
||||||
|
|
||||||
if (toolService != null && this.SelectedItem is ListBoxItem) { |
|
||||||
ITool tool = (ITool)(this.SelectedItem as ListBoxItem).Tag; |
|
||||||
if (tool is CreateComponentTool) { |
|
||||||
DragDrop.DoDragDrop((ListBoxItem)this.SelectedItem, tool, DragDropEffects.Copy); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
base.OnMouseMove(e); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
@ -1,60 +0,0 @@ |
|||||||
<Window x:Class="StandaloneDesigner.Window1" |
|
||||||
xmlns="http://schemas.microsoft.com/netfx/2007/xaml/presentation" |
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
|
||||||
xmlns:sd="http://sharpdevelop.net" |
|
||||||
xmlns:my="clr-namespace:StandaloneDesigner" |
|
||||||
SnapsToDevicePixels="True" |
|
||||||
Title="StandaloneDesigner" |
|
||||||
WindowState="Maximized"> |
|
||||||
<DockPanel> |
|
||||||
<ToolBar DockPanel.Dock="Top" |
|
||||||
Name="toolBar"> |
|
||||||
<Button Command="Undo"> |
|
||||||
<Image Source="Images/Undo.png" |
|
||||||
Stretch="None" /> |
|
||||||
</Button> |
|
||||||
<Button Command="Redo"> |
|
||||||
<Image Source="Images/Redo.png" |
|
||||||
Stretch="None" /> |
|
||||||
</Button> |
|
||||||
<Button Command="Delete"> |
|
||||||
<Image Source="Images/Delete.png" |
|
||||||
Stretch="None" /> |
|
||||||
</Button> |
|
||||||
</ToolBar> |
|
||||||
<Grid> |
|
||||||
<Grid.ColumnDefinitions> |
|
||||||
<ColumnDefinition Width="170" /> |
|
||||||
<ColumnDefinition Width="5" /> |
|
||||||
<ColumnDefinition Width="*" /> |
|
||||||
<ColumnDefinition Width="5" /> |
|
||||||
<ColumnDefinition Width="270" /> |
|
||||||
</Grid.ColumnDefinitions> |
|
||||||
<my:Toolbox x:Name="toolbox" /> |
|
||||||
<GridSplitter HorizontalAlignment="Stretch" |
|
||||||
VerticalAlignment="Stretch" |
|
||||||
Grid.Column="1" /> |
|
||||||
<TabControl TabStripPlacement="Bottom" |
|
||||||
Name="tabControl" |
|
||||||
SelectionChanged="tabControlSelectionChanged" |
|
||||||
Grid.Column="2"> |
|
||||||
<TabItem Header="Code"> |
|
||||||
<TextBox Name="CodeTextBox" |
|
||||||
AcceptsReturn="True" |
|
||||||
VerticalScrollBarVisibility="Auto" |
|
||||||
HorizontalScrollBarVisibility="Auto" /> |
|
||||||
</TabItem> |
|
||||||
<TabItem Header="Design" |
|
||||||
Name="designTab"> |
|
||||||
<sd:DesignSurface x:Name="designSurface" /> |
|
||||||
</TabItem> |
|
||||||
</TabControl> |
|
||||||
<GridSplitter HorizontalAlignment="Stretch" |
|
||||||
VerticalAlignment="Stretch" |
|
||||||
Grid.Column="3" /> |
|
||||||
|
|
||||||
<sd:PropertyGridView x:Name="propertyGridView" |
|
||||||
Grid.Column="4" /> |
|
||||||
</Grid> |
|
||||||
</DockPanel> |
|
||||||
</Window> |
|
||||||
@ -1,112 +0,0 @@ |
|||||||
using System; |
|
||||||
using System.Diagnostics; |
|
||||||
using System.Collections.Generic; |
|
||||||
using System.IO; |
|
||||||
using System.Windows; |
|
||||||
using System.Windows.Controls; |
|
||||||
using System.Xml; |
|
||||||
|
|
||||||
using ICSharpCode.WpfDesign; |
|
||||||
using ICSharpCode.WpfDesign.Designer; |
|
||||||
using ICSharpCode.WpfDesign.Designer.Xaml; |
|
||||||
using ICSharpCode.WpfDesign.PropertyGrid; |
|
||||||
using System.Threading; |
|
||||||
using System.Windows.Threading; |
|
||||||
|
|
||||||
namespace StandaloneDesigner |
|
||||||
{ |
|
||||||
/// <summary>
|
|
||||||
/// Interaction logic for Window1.xaml
|
|
||||||
/// </summary>
|
|
||||||
public partial class Window1 : Window |
|
||||||
{ |
|
||||||
public Window1() |
|
||||||
{ |
|
||||||
DragDropExceptionHandler.HandleException = delegate (Exception ex) { |
|
||||||
MessageBox.Show(ex.ToString()); |
|
||||||
}; |
|
||||||
try { |
|
||||||
InitializeComponent(); |
|
||||||
CodeTextBox.Text = File.ReadAllText("Files/1.xaml"); |
|
||||||
foreach (object o in toolBar.Items) { |
|
||||||
if (o is Button) { |
|
||||||
(o as Button).CommandTarget = designSurface; |
|
||||||
} |
|
||||||
} |
|
||||||
} catch (Exception ex) { |
|
||||||
MessageBox.Show(ex.ToString()); |
|
||||||
Close(); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
void tabControlSelectionChanged(object sender, RoutedEventArgs e) |
|
||||||
{ |
|
||||||
if (e.Source != tabControl) return; |
|
||||||
if (tabControl.SelectedItem == designTab) { |
|
||||||
XamlLoadSettings settings = new XamlLoadSettings(); |
|
||||||
settings.CustomServiceRegisterFunctions.Add( |
|
||||||
delegate(XamlDesignContext context) { |
|
||||||
context.Services.AddService(typeof(IEventHandlerService), new EventHandlerService(this)); |
|
||||||
}); |
|
||||||
|
|
||||||
designSurface.LoadDesigner(new XmlTextReader(new StringReader(CodeTextBox.Text)), settings); |
|
||||||
designSurface.DesignContext.Services.Selection.SelectionChanged += OnSelectionChanged; |
|
||||||
toolbox.ToolService = designSurface.DesignContext.Services.Tool; |
|
||||||
} else { |
|
||||||
if (designSurface.DesignContext != null) { |
|
||||||
propertyGridView.PropertyGrid.SelectedItems = null; |
|
||||||
|
|
||||||
using (StringWriter writer = new StringWriter()) { |
|
||||||
using (XmlTextWriter xmlWriter = new XmlTextWriter(writer)) { |
|
||||||
xmlWriter.Formatting = Formatting.Indented; |
|
||||||
designSurface.SaveDesigner(xmlWriter); |
|
||||||
} |
|
||||||
CodeTextBox.Text = writer.ToString(); |
|
||||||
} |
|
||||||
} |
|
||||||
designSurface.UnloadDesigner(); |
|
||||||
toolbox.ToolService = null; |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
ICollection<DesignItem> oldItems = new DesignItem[0]; |
|
||||||
|
|
||||||
void OnSelectionChanged(object sender, DesignItemCollectionEventArgs e) |
|
||||||
{ |
|
||||||
ISelectionService selectionService = designSurface.DesignContext.Services.Selection; |
|
||||||
ICollection<DesignItem> items = selectionService.SelectedItems; |
|
||||||
if (!IsCollectionWithSameElements(items, oldItems)) { |
|
||||||
propertyGridView.PropertyGrid.SelectedItems = items; |
|
||||||
oldItems = items; |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
static bool IsCollectionWithSameElements(ICollection<DesignItem> a, ICollection<DesignItem> b) |
|
||||||
{ |
|
||||||
return ContainsAll(a, b) && ContainsAll(b, a); |
|
||||||
} |
|
||||||
|
|
||||||
static bool ContainsAll(ICollection<DesignItem> a, ICollection<DesignItem> b) |
|
||||||
{ |
|
||||||
foreach (DesignItem item in a) { |
|
||||||
if (!b.Contains(item)) |
|
||||||
return false; |
|
||||||
} |
|
||||||
return true; |
|
||||||
} |
|
||||||
|
|
||||||
void TestButtonClick(object sender, EventArgs e) |
|
||||||
{ |
|
||||||
DesignItem[] c = new List<DesignItem>(designSurface.DesignContext.Services.Selection.SelectedItems).ToArray(); |
|
||||||
if (c.Length < 2) return; |
|
||||||
int index = 0; |
|
||||||
DispatcherTimer timer = new DispatcherTimer(); |
|
||||||
timer.Interval = new TimeSpan(0, 0, 0, 0, 100); |
|
||||||
timer.Tick += delegate { |
|
||||||
index++; |
|
||||||
designSurface.DesignContext.Services.Selection.SetSelectedComponents(new DesignItem[] { c[index % c.Length] }); |
|
||||||
}; |
|
||||||
timer.Start(); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
Loading…
Reference in new issue