├── .editorconfig
├── .github
└── workflows
│ └── dotnet.yml
├── .gitignore
├── CONTRIBUTING.md
├── ICSharpCode.SharpDevelop.snk
├── LICENSE
├── MyDesigner
├── App.config
├── App.xaml
├── App.xaml.cs
├── Demo.MyDesigner.csproj
├── ExtensionMethods.cs
├── MainWindow.xaml
├── MainWindow.xaml.cs
├── MyToolbox.cs
├── MyToolboxView.xaml
├── MyToolboxView.xaml.cs
└── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
├── MyTestAssembly
├── Demo.MyTestAssembly.csproj
├── MyComponentPropertyService.cs
├── MyDesignerModel.cs
├── MyFooEnum.cs
├── MyWidgetHolderView.xaml
├── MyWidgetHolderView.xaml.cs
├── MyWidgetView.xaml
├── MyWidgetView.xaml.cs
└── Properties
│ └── AssemblyInfo.cs
├── README.md
├── SimpleSample
├── App.config
├── App.xaml
├── App.xaml.cs
├── Arrow
│ ├── ArrowEnds.cs
│ ├── ArrowLine.cs
│ ├── ArrowLineBase.cs
│ ├── ArrowPolyline.cs
│ ├── ArrowheadsDemo.cs
│ └── Extensions
│ │ ├── ArrowLineExtension.cs
│ │ ├── ArrowLineExtensionBase.cs
│ │ ├── ArrowLinePointTrackerPlacementSupport.cs
│ │ └── DrawArrowLineExtension.cs
├── Demo.SimpleSample.csproj
├── MainWindow.xaml
├── MainWindow.xaml.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
├── TestControl.cs
├── ToolboxItem.cs
└── packages.config
├── WpfDesign.Design.ExpressionBlendInteractionAddon
├── BehaviorsEditor
│ ├── BehaviorsEditor.cs
│ └── BehaviorsEditor.xaml
├── InteractionHelper.cs
├── Interfaces
│ └── IComponentBehaviorsAndTriggersService.cs
├── Properties
│ └── AssemblyInfo.cs
├── Services
│ └── ComponentBehaviorsAndTriggersService.cs
├── TriggersEditor
│ ├── TriggersEditor.cs
│ └── TriggersEditor.xaml
├── WpfDesign.Designer.ExpressionBlendInteractionAddon.csproj
└── themes
│ ├── VersionedAssemblyResourceDictionary.cs
│ └── generic.xaml
├── WpfDesign.Designer
├── Project
│ ├── ArrangeDirection.cs
│ ├── BasicMetadata.cs
│ ├── CallExtension.cs
│ ├── Commands.cs
│ ├── Configuration
│ │ ├── AssemblyInfo.cs
│ │ └── CodeAnalysisDictionary.xml
│ ├── Controls
│ │ ├── AdornerLayer.cs
│ │ ├── CanvasPositionHandle.cs
│ │ ├── ClearableTextBox.cs
│ │ ├── CollapsiblePanel.cs
│ │ ├── CollapsiblePanel.xaml
│ │ ├── ColorHelper.cs
│ │ ├── ColorPicker.xaml
│ │ ├── ColorPicker.xaml.cs
│ │ ├── ContainerDragHandle.cs
│ │ ├── ControlStyles.xaml
│ │ ├── DragListener.cs
│ │ ├── DropDownButton.cs
│ │ ├── EnterTextBox.cs
│ │ ├── EnumBar.xaml
│ │ ├── EnumBar.xaml.cs
│ │ ├── EnumButton.cs
│ │ ├── ErrorBalloon.cs
│ │ ├── GrayOutDesignerExceptActiveArea.cs
│ │ ├── GridAdorner.cs
│ │ ├── GridUnitSelector.xaml
│ │ ├── GridUnitSelector.xaml.cs
│ │ ├── InPlaceEditor.cs
│ │ ├── InfoTextEnterArea.cs
│ │ ├── MarginHandle.cs
│ │ ├── NullableComboBox.cs
│ │ ├── NullableComboBox.xaml
│ │ ├── NumericUpDown.cs
│ │ ├── NumericUpDown.xaml
│ │ ├── PageClone.cs
│ │ ├── PanelMoveAdorner.cs
│ │ ├── Picker.cs
│ │ ├── QuickOperationMenu.cs
│ │ ├── RelayCommand.cs
│ │ ├── RenderTransformOriginThumb.cs
│ │ ├── SelectionFrame.cs
│ │ ├── SizeDisplay.cs
│ │ ├── Thumbs
│ │ │ ├── DesignerThumb.cs
│ │ │ ├── MultiPointThumb.cs
│ │ │ ├── PointThumb.cs
│ │ │ ├── ResizeThumb.cs
│ │ │ ├── RotateThumb.cs
│ │ │ └── UserControlPointsObjectThumb.cs
│ │ ├── WindowClone.cs
│ │ ├── ZoomButtons.cs
│ │ ├── ZoomControl.cs
│ │ ├── ZoomScrollViewer.cs
│ │ └── ZoomScrollViewer.xaml
│ ├── Converters.cs
│ ├── DesignPanel.cs
│ ├── DesignSurface.cs
│ ├── DesignSurface.xaml
│ ├── DragDropExceptionHandler.cs
│ ├── ExtensionMethods.cs
│ ├── Extensions
│ │ ├── ArrangeItemsContextMenu.xaml
│ │ ├── ArrangeItemsContextMenu.xaml.cs
│ │ ├── ArrangeItemsContextMenuExtension.cs
│ │ ├── BorderForImageControl.cs
│ │ ├── BorderForInvisibleControl.cs
│ │ ├── BorderForMouseOver.cs
│ │ ├── CanvasPlacementSupport.cs
│ │ ├── CanvasPositionExtension.cs
│ │ ├── DefaultCommandsContextMenu.xaml
│ │ ├── DefaultCommandsContextMenu.xaml.cs
│ │ ├── DefaultCommandsContextMenuExtension.cs
│ │ ├── DefaultPlacementBehavior.cs
│ │ ├── DrawLineExtension.cs
│ │ ├── DrawPathExtension.cs
│ │ ├── DrawPolyLineExtension.cs
│ │ ├── EditStyleContextMenu.xaml
│ │ ├── EditStyleContextMenu.xaml.cs
│ │ ├── EditStyleContextMenuExtension.cs
│ │ ├── GridAdornerProvider.cs
│ │ ├── GridPlacementSupport.cs
│ │ ├── InPlaceEditorExtension.cs
│ │ ├── Initializers.cs
│ │ ├── LineExtensionBase.cs
│ │ ├── LineHandlerExtension.cs
│ │ ├── MarginHandleExtension.cs
│ │ ├── OnlyDeletePlacementBehavior.cs
│ │ ├── PanelInstanceFactory.cs
│ │ ├── PanelMove.cs
│ │ ├── PanelSelectionHandler.cs
│ │ ├── PartialPanelSelectionHandler.cs
│ │ ├── PathContextMenu.xaml
│ │ ├── PathContextMenu.xaml.cs
│ │ ├── PathContextMenuExtension.cs
│ │ ├── PathHandlerExtension.cs
│ │ ├── PointTrackerPlacementSupport.cs
│ │ ├── PolyLineHandlerExtension.cs
│ │ ├── QuickOperationMenuExtension.cs
│ │ ├── RasterPlacementBehavior.cs
│ │ ├── RenderTransformOriginExtension.cs
│ │ ├── ResizeThumbExtension.cs
│ │ ├── RightClickContextMenu.xaml
│ │ ├── RightClickContextMenu.xaml.cs
│ │ ├── RightClickContextMenuExtension.cs
│ │ ├── RotateThumbExtension.cs
│ │ ├── SelectedElementRectangleExtension.cs
│ │ ├── SizeDisplayExtension.cs
│ │ ├── SkewThumbExtension.cs
│ │ ├── SnaplinePlacementBehavior.cs
│ │ ├── StackPanelPlacementSupport.cs
│ │ ├── TabItemClickableExtension.cs
│ │ ├── TextBlockRightClickContextMenu.xaml
│ │ ├── TextBlockRightClickContextMenu.xaml.cs
│ │ ├── TextBlockRightClickContextMenuExtension.cs
│ │ ├── TopLeftContainerDragHandle.cs
│ │ ├── TopLeftContainerDragHandleMultipleItems.cs
│ │ ├── UnwrapItemContextMenu.xaml
│ │ ├── UnwrapItemContextMenu.xaml.cs
│ │ ├── UnwrapItemContextMenuExtension.cs
│ │ ├── UserControlPointsObjectExtension.cs
│ │ ├── WrapItemContextMenu.xaml
│ │ ├── WrapItemContextMenu.xaml.cs
│ │ ├── WrapItemContextMenuExtension.cs
│ │ ├── WrapItemsContextMenu.xaml
│ │ ├── WrapItemsContextMenu.xaml.cs
│ │ └── WrapItemsContextMenuExtension.cs
│ ├── FocusNavigator.cs
│ ├── Images
│ │ ├── Class.png
│ │ ├── Icons.16x16.CopyIcon.png
│ │ ├── Icons.16x16.CutIcon.png
│ │ ├── Icons.16x16.DeleteIcon.png
│ │ ├── Icons.16x16.GridSnap.png
│ │ ├── Icons.16x16.GuideSnap.png
│ │ ├── Icons.16x16.PasteIcon.png
│ │ ├── Icons.16x16.Properties.Categorized.png
│ │ ├── Icons.16x16.Properties.Events.png
│ │ ├── Icons.16x16.Properties.Properties.png
│ │ ├── Icons.16x16.Properties.SortAlphabet.png
│ │ ├── Icons.16x16.RedoIcon.png
│ │ ├── Icons.16x16.UndoIcon.png
│ │ ├── Icons.16x16.WpfOutline.Eye.png
│ │ ├── Icons.16x16.WpfOutline.EyeClose.png
│ │ ├── Icons.32x32.EmptyProjectIcon.png
│ │ ├── PanToolCursor.cur
│ │ ├── PanToolCursorMouseDown.cur
│ │ ├── Tag.png
│ │ ├── ZoomIn.png
│ │ ├── ZoomOut.png
│ │ ├── canvas.png
│ │ ├── edit-bold.png
│ │ ├── edit-color.png
│ │ ├── edit-italic.png
│ │ ├── edit-strike.png
│ │ ├── edit-underline.png
│ │ ├── edit.png
│ │ ├── grid.png
│ │ ├── group2.png
│ │ ├── layers-alignment-bottom.png
│ │ ├── layers-alignment-center.png
│ │ ├── layers-alignment-left.png
│ │ ├── layers-alignment-middle.png
│ │ ├── layers-alignment-right.png
│ │ ├── layers-alignment.png
│ │ ├── layers-arrange-back.png
│ │ ├── layers-arrange.png
│ │ ├── layers-stack-arrange-back.png
│ │ ├── layers-stack-arrange.png
│ │ ├── license.txt
│ │ ├── lock.png
│ │ ├── paint-can-color.png
│ │ ├── rotate.cur
│ │ └── wrap-option.png
│ ├── MarkupExtensions
│ │ └── DesignItemBinding.cs
│ ├── ModelTools.cs
│ ├── OutlineView
│ │ ├── DragListener.cs
│ │ ├── DragTreeView.cs
│ │ ├── DragTreeViewItem.cs
│ │ ├── IconItem.cs
│ │ ├── Outline.xaml
│ │ ├── Outline.xaml.cs
│ │ ├── OutlineNode.cs
│ │ ├── OutlineNodeBase.cs
│ │ ├── OutlineNodeNameService.cs
│ │ ├── OutlineTreeView.cs
│ │ ├── OutlineView.xaml
│ │ └── PropertyOutlineNode.cs
│ ├── PropertyGrid
│ │ ├── Editors
│ │ │ ├── BoolEditor.xaml
│ │ │ ├── BoolEditor.xaml.cs
│ │ │ ├── BrushEditor
│ │ │ │ ├── BrushEditor.cs
│ │ │ │ ├── BrushEditorPopup.xaml
│ │ │ │ ├── BrushEditorPopup.xaml.cs
│ │ │ │ ├── BrushEditorView.xaml
│ │ │ │ ├── BrushEditorView.xaml.cs
│ │ │ │ ├── BrushTypeEditor.xaml
│ │ │ │ ├── BrushTypeEditor.xaml.cs
│ │ │ │ ├── GradientBrushEditor.xaml
│ │ │ │ ├── GradientBrushEditor.xaml.cs
│ │ │ │ ├── GradientSlider.xaml
│ │ │ │ ├── GradientSlider.xaml.cs
│ │ │ │ ├── NormalizedPanel.cs
│ │ │ │ ├── SolidBrushEditor.xaml
│ │ │ │ └── SolidBrushEditor.xaml.cs
│ │ │ ├── CollectionEditor.xaml
│ │ │ ├── CollectionEditor.xaml.cs
│ │ │ ├── CollectionTemplateDictionary.xaml
│ │ │ ├── CollectionTemplateSelector.cs
│ │ │ ├── ColorEditor
│ │ │ │ ├── ColorEditorPopup.xaml
│ │ │ │ ├── ColorEditorPopup.xaml.cs
│ │ │ │ ├── ColorTypeEditor.xaml
│ │ │ │ └── ColorTypeEditor.xaml.cs
│ │ │ ├── ComboBoxEditor.xaml
│ │ │ ├── ComboBoxEditor.xaml.cs
│ │ │ ├── EventEditor.xaml
│ │ │ ├── EventEditor.xaml.cs
│ │ │ ├── FlatCollectionEditor.xaml
│ │ │ ├── FlatCollectionEditor.xaml.cs
│ │ │ ├── FormatedTextEditor
│ │ │ │ ├── FormatedTextEditor.xaml
│ │ │ │ ├── FormatedTextEditor.xaml.cs
│ │ │ │ ├── RichTextBoxToolbar.xaml
│ │ │ │ └── RichTextBoxToolbar.xaml.cs
│ │ │ ├── NumberEditor.xaml
│ │ │ ├── NumberEditor.xaml.cs
│ │ │ ├── OpenCollectionEditor.xaml
│ │ │ ├── OpenCollectionEditor.xaml.cs
│ │ │ ├── TextBoxEditor.xaml
│ │ │ ├── TextBoxEditor.xaml.cs
│ │ │ ├── TimeSpanEditor.xaml
│ │ │ └── TimeSpanEditor.xaml.cs
│ │ ├── PropertyContextMenu.xaml
│ │ ├── PropertyContextMenu.xaml.cs
│ │ ├── PropertyGrid.cs
│ │ ├── PropertyGridView.cs
│ │ └── PropertyGridView.xaml
│ ├── RootItemBehavior.cs
│ ├── Services
│ │ ├── ChooseClass.cs
│ │ ├── ChooseClassDialog.xaml
│ │ ├── ChooseClassDialog.xaml.cs
│ │ ├── ChooseClassServiceBase.cs
│ │ ├── ClickOrDragMouseGesture.cs
│ │ ├── ComponentPropertyService.cs
│ │ ├── CopyPasteService.cs
│ │ ├── CreateComponentTool.cs
│ │ ├── DesignerKeyBindings.cs
│ │ ├── DragFileToDesignPanelHelper.cs
│ │ ├── DragMoveMouseGesture.cs
│ │ ├── ErrorService.cs
│ │ ├── MouseGestureBase.cs
│ │ ├── MoveLogic.cs
│ │ ├── OptionService.cs
│ │ ├── PointerTool.cs
│ │ ├── SelectionService.cs
│ │ ├── ToolService.cs
│ │ ├── UndoService.cs
│ │ ├── ViewService.cs
│ │ ├── WpfTopLevelWindowService.cs
│ │ └── XamlErrorService.cs
│ ├── SharedInstances.cs
│ ├── StretchDirection.cs
│ ├── ThumbnailView
│ │ ├── ThumbnailView.cs
│ │ └── ThumbnailView.xaml
│ ├── Translations.cs
│ ├── WpfDesign.Designer.csproj
│ ├── Xaml
│ │ ├── XamlComponentService.cs
│ │ ├── XamlDesignContext.cs
│ │ ├── XamlDesignItem.cs
│ │ ├── XamlEditOperations.cs
│ │ ├── XamlLoadSettings.cs
│ │ ├── XamlModelCollectionElementsCollection.cs
│ │ ├── XamlModelProperty.cs
│ │ └── XamlModelPropertyCollection.cs
│ └── themes
│ │ ├── VersionedAssemblyResourceDictionary.cs
│ │ └── generic.xaml
└── Tests
│ ├── AssemblyInfo.cs
│ ├── Designer
│ ├── EditOperationTests.cs
│ ├── FocusNavigatorTests.cs
│ ├── MarginHandleTests.cs
│ ├── MarkupExtensionModelTests.cs
│ ├── MockFocusNavigator.cs
│ ├── ModelTestHelper.cs
│ ├── ModelTests.cs
│ ├── NamespaceTests.cs
│ ├── OutlineView
│ │ ├── HierarchyTests.cs
│ │ ├── InsertTests.cs
│ │ └── SelectionTests.cs
│ ├── PlacementTests.cs
│ └── SetPropertyTests.cs
│ ├── Test.xaml
│ ├── WpfDesign.Tests.csproj
│ ├── XamlDom
│ ├── CollectionTests.cs
│ ├── ExampleClass.cs
│ ├── ExampleClassContainer.cs
│ ├── ExampleControl.cs
│ ├── ExampleService.cs
│ ├── MarkupExtensionTests.cs
│ ├── NamescopeTest.cs
│ ├── NamscopeTestUsercontrol.xaml
│ ├── NamscopeTestUsercontrol.xaml.cs
│ ├── SamplesTests.cs
│ ├── SimpleLoadTests.cs
│ ├── SystemTypesLoadTest.cs
│ ├── TestHelper.cs
│ ├── WhitespaceTests.cs
│ └── XamlTypeFinderTests.cs
│ └── packages.config
├── WpfDesign.XamlDom
└── Project
│ ├── AssemblyInfo.cs
│ ├── CollectionElementsCollection.cs
│ ├── CollectionSupport.cs
│ ├── DesignInstanceExtension.cs
│ ├── DesignTimeProperties.cs
│ ├── IXamlErrorSink.cs
│ ├── MarkupCompatibilityProperties.cs
│ ├── MarkupExtensionParser.cs
│ ├── MarkupExtensionPrinter.cs
│ ├── MarkupExtensionWrapper.cs
│ ├── MarkupExtensionWrapperAttribute.cs
│ ├── NameScopeHelper.cs
│ ├── PositionXmlDocument.cs
│ ├── TemplateHelper.cs
│ ├── WpfDesign.XamlDom.csproj
│ ├── XamlConstants.cs
│ ├── XamlDocument.cs
│ ├── XamlElementLineInfo.cs
│ ├── XamlFormatter.cs
│ ├── XamlLoadException.cs
│ ├── XamlNamespaceProperties.cs
│ ├── XamlObject.cs
│ ├── XamlObjectServiceProvider.cs
│ ├── XamlParser.cs
│ ├── XamlParserSettings.cs
│ ├── XamlProperty.cs
│ ├── XamlPropertyInfo.cs
│ ├── XamlPropertyValue.cs
│ ├── XamlStaticTools.cs
│ ├── XamlTextValue.cs
│ ├── XamlTypeFinder.cs
│ ├── XamlTypeResolverProvider.cs
│ └── XamlXmlWriter.cs
├── WpfDesign.sln
├── WpfDesign
└── Project
│ ├── Adorners
│ ├── AdornerPanel.cs
│ ├── AdornerPlacement.cs
│ ├── AdornerPlacementSpace.cs
│ ├── AdornerProvider.cs
│ ├── AdornerProviderClasses.cs
│ ├── IAdornerLayer.cs
│ └── RelativePlacement.cs
│ ├── ChangeGroup.cs
│ ├── Configuration
│ ├── AssemblyInfo.cs
│ └── CodeAnalysisDictionary.xml
│ ├── DesignContext.cs
│ ├── DesignItem.cs
│ ├── DesignItemProperty.cs
│ ├── DesignPanelHitTestResult.cs
│ ├── DesignerException.cs
│ ├── DrawItemExtension.cs
│ ├── DummyValueInsteadOfNullTypeDescriptionProvider.cs
│ ├── EventArgs.cs
│ ├── ExtensionMethods.cs
│ ├── Extensions
│ ├── BehaviorExtension.cs
│ ├── CustomInstanceFactory.cs
│ ├── DefaultExtension.cs
│ ├── DefaultInitializer.cs
│ ├── DesignItemInitializer.cs
│ ├── Extension.cs
│ ├── ExtensionAttribute.cs
│ ├── ExtensionForAttribute.cs
│ ├── ExtensionInterfaces.cs
│ ├── ExtensionManager.cs
│ ├── ExtensionServer.cs
│ ├── ExtensionServerAttribute.cs
│ ├── LogicalExtensionServers.cs
│ ├── MouseOverExtensionServer.cs
│ ├── NeverApplyExtensionsExtensionServer.cs
│ ├── SelectionExtensionServers.cs
│ └── XamlInstanceFactory.cs
│ ├── HitTestType.cs
│ ├── Interfaces
│ ├── IObservableList.cs
│ └── IOutlineNode.cs
│ ├── Metadata.cs
│ ├── MouseInteraction.cs
│ ├── PlacementAlignment.cs
│ ├── PlacementBehavior.cs
│ ├── PlacementInformation.cs
│ ├── PlacementOperation.cs
│ ├── PlacementType.cs
│ ├── PropertyGrid
│ ├── Category.cs
│ ├── EditorManager.cs
│ ├── PropertyEditorAttribute.cs
│ ├── PropertyNode.cs
│ ├── SortedObservableCollection.cs
│ ├── TypeEditorAttribute.cs
│ └── TypeHelper.cs
│ ├── ServiceContainer.cs
│ ├── ServiceRequiredException.cs
│ ├── Services.cs
│ ├── Services
│ ├── ICopyPasteService.cs
│ └── ISelectionFilterService.cs
│ ├── Tools.cs
│ ├── UIExtensions
│ ├── MouseHorizontalWheelEnabler.cs
│ ├── MouseHorizontalWheelEventArgs.cs
│ └── UIHelpers.cs
│ └── WpfDesign.csproj
├── XamlDesigner
├── App.xaml
├── App.xaml.cs
├── BitmapButton.xaml
├── BitmapButton.xaml.cs
├── Configuration
│ ├── AssemblyInfo.cs
│ ├── Settings.Designer.cs
│ ├── Settings.settings
│ ├── app.config
│ └── app.manifest
├── Converters.cs
├── Converters
│ ├── ActiveDocumentConverter.cs
│ ├── PanesStyleSelector.cs
│ └── PanesTemplateSelector.cs
├── Demo.XamlDesigner.csproj
├── Document.cs
├── DocumentView.xaml
├── DocumentView.xaml.cs
├── EnumBar.xaml
├── EnumBar.xaml.cs
├── EnumButton.cs
├── ErrorListView.xaml
├── ErrorListView.xaml.cs
├── ExtensionMethods.cs
├── Images
│ ├── Error.png
│ ├── Reference.png
│ └── Tag.png
├── MainWindow.xaml
├── MainWindow.xaml.cs
├── MainWindow_Commands.cs
├── MyTypeFinder.cs
├── NewFileTemplate.xaml
├── Shell.cs
├── SimpleCommand.cs
├── TestFiles
│ ├── 1.xaml
│ ├── 2.xaml
│ ├── 3.xaml
│ ├── 4.xaml
│ └── 5.xaml
├── Themes
│ └── Generic.xaml
├── Toolbox.cs
├── ToolboxView.xaml
├── ToolboxView.xaml.cs
└── app.config
├── appveyor.yml
├── azure-pipelines.yml
├── nuget
├── WpfDesigner.ExpressionBlendInteractionAddon.nuspec
├── WpfDesigner.nuspec
├── nuget.exe
└── pack.ps1
└── screenshot.png
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 | [*]
3 | indent_style = tab
--------------------------------------------------------------------------------
/.github/workflows/dotnet.yml:
--------------------------------------------------------------------------------
1 | name: Build WPF Designer
2 |
3 | on:
4 | push:
5 | branches: [ master ]
6 | pull_request:
7 | branches: [ master ]
8 |
9 | jobs:
10 | build:
11 |
12 | runs-on: windows-latest
13 | strategy:
14 | matrix:
15 | Configuration: [ Debug, Release ]
16 | env:
17 | BuildPlatform: 'Any CPU'
18 | BuildVersion: '8.1.${{ github.run_number }}'
19 | steps:
20 | - uses: actions/checkout@v4
21 | - name: Update project version
22 | uses: roryprimrose/set-vs-sdk-project-version@v1
23 | with:
24 | projectFilter: '**/*.csproj'
25 | version: ${{ env.BuildVersion }}
26 | assemblyVersion: ${{ env.BuildVersion }}
27 | fileVersion: ${{ env.BuildVersion }}
28 | - name: Setup .NET
29 | uses: actions/setup-dotnet@v4
30 | with:
31 | dotnet-version: 6.0.x
32 | - name: Setup NuGet.exe
33 | uses: nuget/setup-nuget@v2
34 | - run: nuget restore WpfDesign.sln
35 | - name: Build
36 | run: dotnet build WpfDesign.sln --no-restore -c ${{ matrix.configuration }}
37 | - name: Test
38 | run: dotnet test WpfDesign.sln --no-build --verbosity normal -c ${{ matrix.configuration }}
39 | - name: Pack
40 | if: matrix.configuration == 'release'
41 | run: .\nuget\pack.ps1
42 | - name: Upload NuGet
43 | if: matrix.configuration == 'release'
44 | uses: actions/upload-artifact@v4
45 | with:
46 | name: NuGet Packages (${{ matrix.configuration }})
47 | path: '**/*.nupkg'
48 | if-no-files-found: error
49 |
50 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing to WPF Designer
2 |
3 | Thanks for helping to improve the WPF Designer.
4 |
5 | In order for your changes to be accepted, please add the following statement to your pull request:
6 |
7 | _I certify that I own, and have sufficient rights to contribute, all source code and related material intended to be compiled or integrated with the source code for the WPF Designer open source product (the "Contribution"). My Contribution is licensed under the MIT License._
8 |
9 | Unless we have this statement in your pull request, we cannot accept it.
10 |
11 | Please be aware that we will not accept pull requests which introduce new dependencies (to UI DLLs) to the WPF Designer. Reason: it is not possible to edit XAML screens which use these DLLs, when they for example have different versions.
12 |
13 |
--------------------------------------------------------------------------------
/ICSharpCode.SharpDevelop.snk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/ICSharpCode.SharpDevelop.snk
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 ICSharpCode
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/MyDesigner/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/MyDesigner/App.xaml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/MyDesigner/App.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Configuration;
4 | using System.Data;
5 | using System.Linq;
6 | using System.Threading.Tasks;
7 | using System.Windows;
8 |
9 | namespace MyDesigner
10 | {
11 | ///
12 | /// Interaction logic for App.xaml
13 | ///
14 | public partial class App : Application
15 | {
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/MyDesigner/Demo.MyDesigner.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | WinExe
4 | net5.0-windows
5 | true
6 | false
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/MyDesigner/MainWindow.xaml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
30 |
31 |
32 |
34 |
35 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/MyDesigner/MyToolbox.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Collections.ObjectModel;
7 | using MyTestAssembly;
8 |
9 | namespace MyDesigner
10 | {
11 | public class MyToolbox
12 | {
13 |
14 | public MyToolbox()
15 | {
16 | MyFooNodes = new ObservableCollection();
17 |
18 | //For poc, just add a node to our collection for each member of MyFooEnum.
19 | MyFooNodes.Add(new MyFooNode() { FooType = MyFooEnum.ButtonWidget });
20 | MyFooNodes.Add(new MyFooNode() { FooType = MyFooEnum.TextWidget });
21 | }
22 |
23 | public static MyToolbox Instance = new MyToolbox();
24 | public ObservableCollection MyFooNodes { get; private set; }
25 | }
26 |
27 | //Represents either a widget or form controls node. A folder structure would require a different node for folders? Like the AssemblyNode in Toolbox.
28 | public class MyFooNode
29 | {
30 | public MyFooEnum FooType { get; set; }
31 |
32 | public string Name
33 | {
34 | get
35 | {
36 | return this.FooType.ToString();
37 | }
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/MyDesigner/MyToolboxView.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/MyDesigner/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace MyDesigner.Properties
12 | {
13 |
14 |
15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18 | {
19 |
20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21 |
22 | public static Settings Default
23 | {
24 | get
25 | {
26 | return defaultInstance;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/MyDesigner/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/MyTestAssembly/Demo.MyTestAssembly.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | Library
4 | net5.0-windows
5 | true
6 | false
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/MyTestAssembly/MyComponentPropertyService.cs:
--------------------------------------------------------------------------------
1 | using ICSharpCode.WpfDesign;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using System.ComponentModel;
8 | using ICSharpCode.WpfDesign.PropertyGrid;
9 |
10 | namespace MyTestAssembly
11 | {
12 | public class MyComponentPropertyService : IComponentPropertyService
13 | {
14 | public IEnumerable GetAvailableEvents(DesignItem designItem)
15 | {
16 | //We don't want to show events for our design items, so probably throw an exception here?
17 | IEnumerable retVal = TypeHelper.GetAvailableEvents(designItem.ComponentType);
18 | return retVal;
19 | }
20 |
21 | public IEnumerable GetAvailableProperties(DesignItem designItem)
22 | {
23 | IEnumerable retVal = TypeHelper.GetAvailableProperties(designItem.Component);
24 |
25 | retVal = retVal.Where(c => c.Name == "Foreground" || c.Name== "MyStringProperty");
26 |
27 | return retVal;
28 | }
29 |
30 | public IEnumerable GetCommonAvailableProperties(IEnumerable designItems)
31 | {
32 | IEnumerable retVal = TypeHelper.GetCommonAvailableProperties(designItems.Select(t => t.Component));
33 |
34 | return retVal;
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/MyTestAssembly/MyDesignerModel.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using ICSharpCode.WpfDesign.Designer;
7 | using ICSharpCode.WpfDesign.Designer.PropertyGrid;
8 | using ICSharpCode.WpfDesign;
9 |
10 | namespace MyTestAssembly
11 | {
12 | //Similar to the Shell class used in the sharpdevlop large sample
13 | public class MyDesignerModel
14 | {
15 | public MyDesignerModel()
16 | {
17 | this.m_designSurface = new DesignSurface();
18 | }
19 |
20 | public static MyDesignerModel Instance = new MyDesignerModel();
21 |
22 | private DesignSurface m_designSurface;
23 |
24 |
25 | public DesignSurface DesignSurface
26 | {
27 | get { return this.m_designSurface; }
28 | }
29 |
30 | public IPropertyGrid PropertyGrid { get; set; }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/MyTestAssembly/MyFooEnum.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace MyTestAssembly
8 | {
9 | ///
10 | /// Represents all of the different things that can be dragged onto the design surface.
11 | ///
12 | public enum MyFooEnum
13 | {
14 | ButtonWidget,
15 | TextWidget
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/MyTestAssembly/MyWidgetHolderView.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/MyTestAssembly/MyWidgetHolderView.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace MyTestAssembly
17 | {
18 | ///
19 | /// Interaction logic for MyWidgetHolderView.xaml
20 | ///
21 | public partial class MyWidgetHolderView : UserControl, IDisposable
22 | {
23 | public MyWidgetHolderView()
24 | {
25 | InitializeComponent();
26 | }
27 |
28 |
29 |
30 | public string MyStringProperty
31 | {
32 | get { return (string)GetValue(MyStringPropertyProperty); }
33 | set { SetValue(MyStringPropertyProperty, value); }
34 | }
35 |
36 | // Using a DependencyProperty as the backing store for MyStringProperty. This enables animation, styling, binding, etc...
37 | public static readonly DependencyProperty MyStringPropertyProperty =
38 | DependencyProperty.Register("MyStringProperty", typeof(string), typeof(MyWidgetHolderView), new PropertyMetadata(null));
39 |
40 |
41 |
42 | ~MyWidgetHolderView()
43 | {
44 |
45 | }
46 |
47 | public void Dispose()
48 | {
49 |
50 | }
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/MyTestAssembly/MyWidgetView.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/MyTestAssembly/MyWidgetView.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace MyTestAssembly
17 | {
18 | ///
19 | /// Interaction logic for MyWidgetView.xaml
20 | ///
21 | public partial class MyWidgetView : UserControl
22 | {
23 | public MyWidgetView()
24 | {
25 | InitializeComponent();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/MyTestAssembly/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.InteropServices;
3 |
4 | // General Information about an assembly is controlled through the following
5 | // set of attributes. Change these attribute values to modify the information
6 | // associated with an assembly.
7 | [assembly: AssemblyTitle("MyTestAssembly")]
8 | [assembly: AssemblyDescription("")]
9 | [assembly: AssemblyConfiguration("")]
10 | [assembly: AssemblyCompany("")]
11 | [assembly: AssemblyProduct("MyTestAssembly")]
12 | [assembly: AssemblyCopyright("Copyright © 2019")]
13 | [assembly: AssemblyTrademark("")]
14 | [assembly: AssemblyCulture("")]
15 |
16 | // Setting ComVisible to false makes the types in this assembly not visible
17 | // to COM components. If you need to access a type in this assembly from
18 | // COM, set the ComVisible attribute to true on that type.
19 | [assembly: ComVisible(false)]
20 |
21 | // The following GUID is for the ID of the typelib if this project is exposed to COM
22 | [assembly: Guid("dc6bd4a4-bf01-4a4b-bef6-9b17d6ab2e06")]
23 |
24 | // Version information for an assembly consists of the following four values:
25 | //
26 | // Major Version
27 | // Minor Version
28 | // Build Number
29 | // Revision
30 | //
31 | // You can specify all the values or you can default the Build and Revision Numbers
32 | // by using the '*' as shown below:
33 | // [assembly: AssemblyVersion("1.0.*")]
34 | [assembly: AssemblyVersion("1.0.0.0")]
35 | [assembly: AssemblyFileVersion("1.0.0.0")]
36 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # WpfDesigner
2 | The WPF Designer from SharpDevelop, available via [NuGet](https://www.nuget.org/packages/ICSharpCode.WpfDesigner/)
3 |
4 | ## Overview
5 |
6 | WpfDesigner is a set of assemblies which can be included in your project to implement a XAML GUI editor.
7 |
8 | ## Project Build Status
9 |
10 | Branch | Status
11 | --- | ---
12 | *master* (Development) | [](https://github.com/icsharpcode/WpfDesigner/actions/workflows/dotnet.yml)
13 |
14 |
15 | ## System Requirements
16 |
17 | .NET 4.5, or .NET Core 5.0 as well as .NET 6.0
18 |
19 | ## Libraries and Integrated Tools
20 |
21 | Only the sample app has dependencies:
22 | * [Avalon Dock](http://avalondock.codeplex.com/)
23 | * [Avalon Edit](https://github.com/icsharpcode/AvalonEdit)
24 |
25 | ## Sample App
26 | 
27 |
28 | ###### Copyright 2015-2019 AlphaSierraPapa for the SharpDevelop team. SharpDevelop is distributed under the MIT license.
29 |
--------------------------------------------------------------------------------
/SimpleSample/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/SimpleSample/App.xaml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/SimpleSample/App.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Configuration;
4 | using System.Data;
5 | using System.Linq;
6 | using System.Threading.Tasks;
7 | using System.Windows;
8 |
9 | namespace SimpleSample
10 | {
11 | ///
12 | /// Interaction logic for App.xaml
13 | ///
14 | public partial class App : Application
15 | {
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/SimpleSample/Arrow/ArrowEnds.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------
2 | // ArrowEnds.cs (c) 2007 by Charles Petzold
3 | //------------------------------------------
4 | using System;
5 |
6 | namespace Petzold.Media2D
7 | {
8 | ///
9 | /// Indicates which end of the line has an arrow.
10 | ///
11 | [Flags]
12 | public enum ArrowEnds
13 | {
14 | None = 0,
15 | Start = 1,
16 | End = 2,
17 | Both = 3
18 | }
19 | }
--------------------------------------------------------------------------------
/SimpleSample/Demo.SimpleSample.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | Exe
4 | net5.0-windows
5 | true
6 | false
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/SimpleSample/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace SimpleSample.Properties
12 | {
13 |
14 |
15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18 | {
19 |
20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21 |
22 | public static Settings Default
23 | {
24 | get
25 | {
26 | return defaultInstance;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/SimpleSample/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/SimpleSample/ToolboxItem.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace SimpleSample
4 | {
5 | public class ToolBoxItem
6 | {
7 | public Type Type { get; set; }
8 |
9 | private object _instance;
10 | public object Instance
11 | {
12 | get
13 | {
14 | if (_instance == null)
15 | {
16 | _instance = Activator.CreateInstance(Type);
17 | }
18 | return _instance;
19 | }
20 | }
21 |
22 | public string Name
23 | {
24 | get
25 | {
26 | return Type.Name;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/SimpleSample/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/WpfDesign.Design.ExpressionBlendInteractionAddon/BehaviorsEditor/BehaviorsEditor.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
22 |
--------------------------------------------------------------------------------
/WpfDesign.Design.ExpressionBlendInteractionAddon/Interfaces/IComponentBehaviorsAndTriggersService.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System.Collections.Generic;
20 |
21 | namespace ICSharpCode.WpfDesign.Designer.ExpressionBlendInteractionAddon.Interfaces
22 | {
23 | public interface IComponentBehaviorsAndTriggersService
24 | {
25 | IEnumerable GetBehaviors(DesignItem designItem);
26 |
27 | IEnumerable GetTriggers(DesignItem designItem);
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/WpfDesign.Design.ExpressionBlendInteractionAddon/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System.Reflection;
20 | using System.Runtime.InteropServices;
21 | using System.Windows;
22 | using System.Windows.Markup;
23 |
24 | // Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
25 | [assembly: Guid("01f281cf-7616-40e3-abe7-aac008698719")]
26 |
27 | [assembly: ThemeInfo(
28 | ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
29 | //(used if a resource is not found in the page,
30 | // or application resource dictionaries)
31 | ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
32 | //(used if a resource is not found in the page,
33 | // app, or any theme specific resource dictionaries)
34 | )]
35 |
36 | [assembly: XmlnsPrefix("http://sharpdevelop.net", "sd")]
37 |
38 | //[assembly: XmlnsDefinition("http://sharpdevelop.net", "ICSharpCode.WpfDesign.Designer")]
39 |
--------------------------------------------------------------------------------
/WpfDesign.Design.ExpressionBlendInteractionAddon/Services/ComponentBehaviorsAndTriggersService.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System.Collections.Generic;
20 | using ICSharpCode.WpfDesign.Designer.ExpressionBlendInteractionAddon.Interfaces;
21 |
22 | namespace ICSharpCode.WpfDesign.Designer.ExpressionBlendInteractionAddon.Services
23 | {
24 | public class ComponentBehaviorsAndTriggersService : IComponentBehaviorsAndTriggersService
25 | {
26 | public IEnumerable GetBehaviors(DesignItem designItem)
27 | {
28 | return InteractionHelper.GetBehaviors(designItem);
29 | }
30 |
31 | public IEnumerable GetTriggers(DesignItem designItem)
32 | {
33 | return InteractionHelper.GetTriggers(designItem);
34 | }
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/WpfDesign.Design.ExpressionBlendInteractionAddon/TriggersEditor/TriggersEditor.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
22 |
--------------------------------------------------------------------------------
/WpfDesign.Design.ExpressionBlendInteractionAddon/WpfDesign.Designer.ExpressionBlendInteractionAddon.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | Library
4 | net45;net5.0-windows;net6.0-windows
5 | true
6 | ICSharpCode.WpfDesign.Designer.ExpressionBlendInteractionAddon
7 | ICSharpCode.WpfDesign.Designer.ExpressionBlendInteractionAddon
8 | 8.1
9 | 8.1.0.0
10 | 8.1.0.0
11 | ic#code
12 | 2000-2021 AlphaSierraPapa for the SharpDevelop Team
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/WpfDesign.Design.ExpressionBlendInteractionAddon/themes/generic.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/ArrangeDirection.cs:
--------------------------------------------------------------------------------
1 | namespace ICSharpCode.WpfDesign.Designer
2 | {
3 | public enum ArrangeDirection
4 | {
5 | Top,
6 | VerticalMiddle,
7 | Bottom,
8 | Left,
9 | HorizontalMiddle,
10 | Right,
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Commands.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System.Windows.Input;
20 |
21 | namespace ICSharpCode.WpfDesign.Designer
22 | {
23 | ///
24 | /// Description of Commands.
25 | ///
26 | public static class Commands
27 | {
28 | public static ICommand AlignTopCommand = new RoutedCommand();
29 | public static ICommand AlignMiddleCommand = new RoutedCommand();
30 | public static ICommand AlignBottomCommand = new RoutedCommand();
31 | public static ICommand AlignLeftCommand = new RoutedCommand();
32 | public static ICommand AlignCenterCommand = new RoutedCommand();
33 | public static ICommand AlignRightCommand = new RoutedCommand();
34 | public static ICommand RotateLeftCommand = new RoutedCommand();
35 | public static ICommand RotateRightCommand = new RoutedCommand();
36 | public static ICommand StretchToSameWidthCommand = new RoutedCommand();
37 | public static ICommand StretchToSameHeightCommand = new RoutedCommand();
38 |
39 | static Commands()
40 | {
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Configuration/CodeAnalysisDictionary.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Headered
7 | Snapline
8 |
9 |
10 |
11 | Lineup
12 |
13 |
14 |
15 | Bestest
16 |
17 |
18 |
19 |
20 |
21 | WiX
22 |
23 |
24 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Controls/DropDownButton.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System.Windows.Controls;
20 | using System.Windows.Media;
21 | using System.Windows.Shapes;
22 |
23 | namespace ICSharpCode.WpfDesign.Designer.Controls
24 | {
25 | ///
26 | /// A button with a drop-down arrow.
27 | ///
28 | public class DropDownButton : Button
29 | {
30 | static readonly Geometry triangle = (Geometry)new GeometryConverter().ConvertFromInvariantString("M0,0 L1,0 0.5,1 z");
31 |
32 | public DropDownButton()
33 | {
34 | Content = new Path {
35 | Fill = Brushes.Black,
36 | Data = triangle,
37 | Width = 7,
38 | Height = 3.5,
39 | Stretch = Stretch.Fill
40 | };
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Controls/EnterTextBox.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System.Windows.Controls;
20 | using System.Windows.Input;
21 | using System.Windows.Data;
22 |
23 | namespace ICSharpCode.WpfDesign.Designer.Controls
24 | {
25 | public class EnterTextBox : TextBox
26 | {
27 | protected override void OnKeyDown(KeyEventArgs e)
28 | {
29 | if (e.Key == Key.Enter) {
30 | var b = BindingOperations.GetBindingExpressionBase(this, TextProperty);
31 | if (b != null) {
32 | b.UpdateSource();
33 | }
34 | SelectAll();
35 | }
36 | else if (e.Key == Key.Escape) {
37 | var b = BindingOperations.GetBindingExpressionBase(this, TextProperty);
38 | if (b != null) {
39 | b.UpdateTarget();
40 | }
41 | }
42 | }
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Controls/EnumBar.xaml:
--------------------------------------------------------------------------------
1 |
5 |
7 |
8 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Controls/EnumButton.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System.Windows.Controls.Primitives;
20 | using System.Windows;
21 |
22 | namespace ICSharpCode.WpfDesign.Designer.Controls
23 | {
24 | public class EnumButton : ToggleButton
25 | {
26 | static EnumButton()
27 | {
28 | DefaultStyleKeyProperty.OverrideMetadata(typeof(EnumButton),
29 | new FrameworkPropertyMetadata(typeof(EnumButton)));
30 | }
31 |
32 | public static readonly DependencyProperty ValueProperty =
33 | DependencyProperty.Register("Value", typeof(object), typeof(EnumButton));
34 |
35 | public object Value {
36 | get { return (object)GetValue(ValueProperty); }
37 | set { SetValue(ValueProperty, value); }
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Controls/ErrorBalloon.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System;
20 | using System.Windows;
21 |
22 | namespace ICSharpCode.WpfDesign.Designer.Controls
23 | {
24 | ///
25 | /// An ErrorBalloon window.
26 | ///
27 | public class ErrorBalloon : Window
28 | {
29 | static ErrorBalloon()
30 | {
31 | DefaultStyleKeyProperty.OverrideMetadata(typeof(ErrorBalloon), new FrameworkPropertyMetadata(typeof(ErrorBalloon)));
32 | }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Controls/GridUnitSelector.xaml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
23 |
24 |
29 |
31 |
39 |
46 |
49 |
50 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Controls/RenderTransformOriginThumb.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System;
20 | using System.Collections.Generic;
21 | using System.Diagnostics;
22 | using System.Windows;
23 | using System.Windows.Input;
24 | using System.Windows.Controls;
25 | using System.Windows.Controls.Primitives;
26 | using ICSharpCode.WpfDesign.Adorners;
27 | using ICSharpCode.WpfDesign.Extensions;
28 |
29 | namespace ICSharpCode.WpfDesign.Designer.Controls
30 | {
31 | ///
32 | /// Description of RenderTransformThumb.
33 | ///
34 | public class RenderTransformOriginThumb : Thumb
35 | {
36 | static RenderTransformOriginThumb()
37 | {
38 | //This OverrideMetadata call tells the system that this element wants to provide a style that is different than its base class.
39 | //This style is defined in themes\generic.xaml
40 | DefaultStyleKeyProperty.OverrideMetadata(typeof(RenderTransformOriginThumb), new FrameworkPropertyMetadata(typeof(RenderTransformOriginThumb)));
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Controls/SelectionFrame.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System;
20 | using System.ComponentModel;
21 | using System.Diagnostics;
22 | using System.Windows;
23 | using System.Windows.Controls;
24 | using System.Windows.Input;
25 | using System.Windows.Media;
26 |
27 | using ICSharpCode.WpfDesign.Extensions;
28 |
29 | namespace ICSharpCode.WpfDesign.Designer.Controls
30 | {
31 | ///
32 | /// The rectangle shown during a rubber-band selecting operation.
33 | ///
34 | public class SelectionFrame : Control
35 | {
36 | static SelectionFrame()
37 | {
38 | //This OverrideMetadata call tells the system that this element wants to provide a style that is different than its base class.
39 | //This style is defined in themes\generic.xaml
40 | DefaultStyleKeyProperty.OverrideMetadata(typeof(SelectionFrame), new FrameworkPropertyMetadata(typeof(SelectionFrame)));
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Controls/SizeDisplay.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System.Windows;
20 | using System.Windows.Controls;
21 |
22 | namespace ICSharpCode.WpfDesign.Designer.Controls
23 | {
24 | ///
25 | /// Display height of the element.
26 | ///
27 | public class HeightDisplay : Control
28 | {
29 | static HeightDisplay()
30 | {
31 | DefaultStyleKeyProperty.OverrideMetadata(typeof(HeightDisplay), new FrameworkPropertyMetadata(typeof(HeightDisplay)));
32 | }
33 | }
34 |
35 | ///
36 | /// Display width of the element.
37 | ///
38 | public class WidthDisplay : Control
39 | {
40 | static WidthDisplay()
41 | {
42 | DefaultStyleKeyProperty.OverrideMetadata(typeof(WidthDisplay), new FrameworkPropertyMetadata(typeof(WidthDisplay)));
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Controls/Thumbs/MultiPointThumb.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System.Windows;
20 | using ICSharpCode.WpfDesign.Adorners;
21 | using ICSharpCode.WpfDesign.Designer.Extensions;
22 |
23 | namespace ICSharpCode.WpfDesign.Designer.Controls
24 | {
25 | ///
26 | /// Description of MultiPointThumb.
27 | ///
28 | internal sealed class MultiPointThumb : DesignerThumb
29 | {
30 | private int _index;
31 |
32 | public int Index
33 | {
34 | get { return _index; }
35 | set
36 | {
37 | _index = value;
38 | var p = AdornerPlacement as PointTrackerPlacementSupport;
39 | if (p != null)
40 | p.Index = value;
41 | }
42 | }
43 |
44 | private AdornerPlacement _adornerPlacement;
45 |
46 | public AdornerPlacement AdornerPlacement
47 | {
48 | get { return _adornerPlacement; }
49 | set { _adornerPlacement = value; }
50 | }
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Controls/Thumbs/RotateThumb.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System;
20 | using System.Linq;
21 | using System.Windows;
22 |
23 | namespace ICSharpCode.WpfDesign.Designer.Controls
24 | {
25 | public class RotateThumb : DesignerThumb
26 | {
27 | static RotateThumb()
28 | {
29 | DefaultStyleKeyProperty.OverrideMetadata(typeof(RotateThumb), new FrameworkPropertyMetadata(typeof(RotateThumb)));
30 | }
31 |
32 | public RotateThumb()
33 | {
34 | this.ThumbVisible = true;
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Controls/Thumbs/UserControlPointsObjectThumb.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using ICSharpCode.WpfDesign.UIExtensions;
20 | using System.Windows;
21 | using System.Windows.Controls;
22 | using System.Windows.Controls.Primitives;
23 |
24 | namespace ICSharpCode.WpfDesign.Designer.Controls
25 | {
26 | public class UserControlPointsObjectThumb : DesignerThumb
27 | {
28 | public DependencyProperty DependencyProperty { get; set; }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Extensions/ArrangeItemsContextMenu.xaml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
16 |
21 |
26 |
31 |
36 |
37 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Extensions/DefaultCommandsContextMenu.xaml:
--------------------------------------------------------------------------------
1 |
4 |
9 |
14 |
19 |
20 |
25 |
26 |
31 |
36 |
37 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Extensions/EditStyleContextMenu.xaml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Extensions/EditStyleContextMenuExtension.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System.Reflection;
20 | using System.Windows.Controls;
21 | using ICSharpCode.WpfDesign.Adorners;
22 | using ICSharpCode.WpfDesign.Extensions;
23 |
24 | namespace ICSharpCode.WpfDesign.Designer.Extensions
25 | {
26 | [ExtensionServer(typeof (OnlyOneItemSelectedExtensionServer))]
27 | [ExtensionFor(typeof (Control))]
28 | [Extension(Order = 31)]
29 | public class EditStyleContextMenuExtension : PrimarySelectionAdornerProvider
30 | {
31 | DesignPanel panel;
32 | ContextMenu contextMenu;
33 |
34 | protected override void OnInitialized()
35 | {
36 | base.OnInitialized();
37 |
38 | contextMenu = new EditStyleContextMenu(ExtendedItem);
39 | panel = ExtendedItem.Context.Services.DesignPanel as DesignPanel;
40 | if (panel != null)
41 | panel.AddContextMenu(contextMenu, this.GetType().GetCustomAttribute().Order);
42 | }
43 |
44 | protected override void OnRemove()
45 | {
46 | if (panel != null)
47 | panel.RemoveContextMenu(contextMenu);
48 |
49 | base.OnRemove();
50 | }
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Extensions/PanelMove.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using ICSharpCode.WpfDesign.Adorners;
20 | using ICSharpCode.WpfDesign.Extensions;
21 | using System.Windows.Controls;
22 | using ICSharpCode.WpfDesign.Designer.Controls;
23 |
24 | namespace ICSharpCode.WpfDesign.Designer.Extensions
25 | {
26 | [ExtensionFor(typeof(Panel))]
27 | [ExtensionFor(typeof(Border))]
28 | [ExtensionFor(typeof(ContentControl))]
29 | [ExtensionFor(typeof(Viewbox))]
30 | public class PanelMove : PermanentAdornerProvider
31 | {
32 | protected override void OnInitialized()
33 | {
34 | base.OnInitialized();
35 |
36 | var adornerPanel = new AdornerPanel();
37 | var adorner = new PanelMoveAdorner(ExtendedItem);
38 | AdornerPanel.SetPlacement(adorner, AdornerPlacement.FillContent);
39 | adornerPanel.Children.Add(adorner);
40 | Adorners.Add(adornerPanel);
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Extensions/PathContextMenu.xaml:
--------------------------------------------------------------------------------
1 |
6 |
8 |
9 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Extensions/RightClickContextMenu.xaml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
16 |
21 |
26 |
27 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Extensions/TabItemClickableExtension.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System.Windows;
20 | using System.Windows.Controls;
21 | using ICSharpCode.WpfDesign.Extensions;
22 |
23 | namespace ICSharpCode.WpfDesign.Designer.Extensions
24 | {
25 | ///
26 | /// Makes TabItems clickable.
27 | ///
28 | [ExtensionFor(typeof(FrameworkElement))]
29 | [ExtensionServer(typeof(PrimarySelectionExtensionServer))]
30 | public sealed class TabItemClickableExtension : DefaultExtension
31 | {
32 | ///
33 | protected override void OnInitialized()
34 | {
35 | // When tab item becomes primary selection, make it the active tab page in its parent tab control.
36 | var t = this.ExtendedItem;
37 | while (t != null) {
38 | if (t.Component is TabItem) {
39 | var tabItem = (TabItem) t.Component;
40 | var tabControl = tabItem.Parent as TabControl;
41 | if (tabControl != null) {
42 | tabControl.SelectedItem = tabItem;
43 | }
44 | }
45 | t = t.Parent;
46 | }
47 | }
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Extensions/TextBlockRightClickContextMenu.xaml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Extensions/UnwrapItemContextMenu.xaml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Extensions/WrapItemContextMenu.xaml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Extensions/WrapItemsContextMenu.xaml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
16 |
17 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/Class.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/Class.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/Icons.16x16.CopyIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/Icons.16x16.CopyIcon.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/Icons.16x16.CutIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/Icons.16x16.CutIcon.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/Icons.16x16.DeleteIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/Icons.16x16.DeleteIcon.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/Icons.16x16.GridSnap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/Icons.16x16.GridSnap.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/Icons.16x16.GuideSnap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/Icons.16x16.GuideSnap.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/Icons.16x16.PasteIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/Icons.16x16.PasteIcon.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/Icons.16x16.Properties.Categorized.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/Icons.16x16.Properties.Categorized.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/Icons.16x16.Properties.Events.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/Icons.16x16.Properties.Events.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/Icons.16x16.Properties.Properties.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/Icons.16x16.Properties.Properties.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/Icons.16x16.Properties.SortAlphabet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/Icons.16x16.Properties.SortAlphabet.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/Icons.16x16.RedoIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/Icons.16x16.RedoIcon.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/Icons.16x16.UndoIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/Icons.16x16.UndoIcon.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/Icons.16x16.WpfOutline.Eye.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/Icons.16x16.WpfOutline.Eye.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/Icons.16x16.WpfOutline.EyeClose.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/Icons.16x16.WpfOutline.EyeClose.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/Icons.32x32.EmptyProjectIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/Icons.32x32.EmptyProjectIcon.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/PanToolCursor.cur:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/PanToolCursor.cur
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/PanToolCursorMouseDown.cur:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/PanToolCursorMouseDown.cur
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/Tag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/Tag.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/ZoomIn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/ZoomIn.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/ZoomOut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/ZoomOut.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/canvas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/canvas.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/edit-bold.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/edit-bold.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/edit-color.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/edit-color.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/edit-italic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/edit-italic.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/edit-strike.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/edit-strike.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/edit-underline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/edit-underline.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/edit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/edit.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/grid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/grid.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/group2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/group2.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/layers-alignment-bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/layers-alignment-bottom.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/layers-alignment-center.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/layers-alignment-center.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/layers-alignment-left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/layers-alignment-left.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/layers-alignment-middle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/layers-alignment-middle.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/layers-alignment-right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/layers-alignment-right.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/layers-alignment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/layers-alignment.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/layers-arrange-back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/layers-arrange-back.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/layers-arrange.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/layers-arrange.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/layers-stack-arrange-back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/layers-stack-arrange-back.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/layers-stack-arrange.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/layers-stack-arrange.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/license.txt:
--------------------------------------------------------------------------------
1 | WPF Designer Icons are taken from
2 | Fugue Icons Library:
3 | License: Creative Commons Attribution 3.0 License
4 | http://p.yusukekamiyamane.com/
5 |
6 | Icons created by the SharpDevelop Team:
7 | Class.png
8 |
9 | Copied from the Fugue Icon Library and left unmodified:
10 |
11 | - Icons.16x16.Properties.Events.png
12 | - Icons.16x16.Properties.SortAlphabet.png
13 | - Icons.16x16.WpfOutline.Eye.png
14 | - Icons.16x16.WpfOutline.EyeClosed.png
15 | - Icons.16x16.GuideSnap.png
16 | - Icons.16x16.GridSnap.png
17 | - lock.png
18 |
19 | Copied from the Fugue Icon Library and modified or mashed up with other Fugue
20 | Icons or parts taken from them:
21 |
22 | - Icons.16x16.Properties.Properties.png
23 | - Icons.16x16.Properties.Categorized.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/lock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/lock.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/paint-can-color.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/paint-can-color.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/rotate.cur:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/rotate.cur
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Images/wrap-option.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/WpfDesign.Designer/Project/Images/wrap-option.png
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/OutlineView/IconItem.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System.Windows.Controls;
20 | using System.Windows;
21 | using System.Windows.Media;
22 |
23 | namespace ICSharpCode.WpfDesign.Designer.OutlineView
24 | {
25 | public class IconItem : Control
26 | {
27 | static IconItem()
28 | {
29 | DefaultStyleKeyProperty.OverrideMetadata(typeof(IconItem),
30 | new FrameworkPropertyMetadata(typeof(IconItem)));
31 | }
32 |
33 | public static readonly DependencyProperty IconProperty =
34 | DependencyProperty.Register("Icon", typeof(ImageSource), typeof(IconItem));
35 |
36 | public ImageSource Icon {
37 | get { return (ImageSource)GetValue(IconProperty); }
38 | set { SetValue(IconProperty, value); }
39 | }
40 |
41 | public static readonly DependencyProperty TextProperty =
42 | DependencyProperty.Register("Text", typeof(string), typeof(IconItem));
43 |
44 | public string Text {
45 | get { return (string)GetValue(TextProperty); }
46 | set { SetValue(TextProperty, value); }
47 | }
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/OutlineView/Outline.xaml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 |
11 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/OutlineView/OutlineNodeNameService.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | namespace ICSharpCode.WpfDesign.Designer.OutlineView
20 | {
21 | ///
22 | /// Description of OulineNodeNameService.
23 | ///
24 | public class OutlineNodeNameService : IOutlineNodeNameService
25 | {
26 | public OutlineNodeNameService()
27 | {
28 | }
29 |
30 | #region IOutlineNodeNameService implementation
31 |
32 | public string GetOutlineNodeName(DesignItem designItem)
33 | {
34 | if (designItem == null)
35 | return "";
36 | if (string.IsNullOrEmpty(designItem.Name)) {
37 | return designItem.ComponentType.Name;
38 | }
39 | return designItem.ComponentType.Name + " (" + designItem.Name + ")";
40 | }
41 |
42 | #endregion
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/OutlineView/PropertyOutlineNode.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | namespace ICSharpCode.WpfDesign.Designer.OutlineView
20 | {
21 | public class PropertyOutlineNode : OutlineNode
22 | {
23 | private DesignItemProperty _property;
24 |
25 | protected PropertyOutlineNode(DesignItemProperty property) : base(property.Name)
26 | {
27 | _property = property;
28 | }
29 |
30 | public override ServiceContainer Services
31 | {
32 | get { return this._property.DesignItem.Services; }
33 | }
34 |
35 | static PropertyOutlineNode()
36 | {
37 | DummyPlacementType = PlacementType.Register("DummyPlacement");
38 | }
39 |
40 | public static IOutlineNode Create(DesignItemProperty property)
41 | {
42 | return new PropertyOutlineNode(property);
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/PropertyGrid/Editors/BoolEditor.xaml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/PropertyGrid/Editors/BoolEditor.xaml.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System;
20 | using System.Windows;
21 | using ICSharpCode.WpfDesign.PropertyGrid;
22 | using ICSharpCode.WpfDesign.Designer.themes;
23 |
24 | namespace ICSharpCode.WpfDesign.Designer.PropertyGrid.Editors
25 | {
26 | [TypeEditor(typeof(bool))]
27 | public partial class BoolEditor
28 | {
29 | public BoolEditor()
30 | {
31 | SpecialInitializeComponent();
32 | }
33 |
34 | ///
35 | /// Fixes InitializeComponent with multiple Versions of same Assembly loaded
36 | ///
37 | public void SpecialInitializeComponent()
38 | {
39 | if (!this._contentLoaded) {
40 | this._contentLoaded = true;
41 | Uri resourceLocator = new Uri(VersionedAssemblyResourceDictionary.GetXamlNameForType(this.GetType()), UriKind.Relative);
42 | Application.LoadComponent(this, resourceLocator);
43 | }
44 |
45 | this.InitializeComponent();
46 | }
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/PropertyGrid/Editors/BrushEditor/BrushEditorPopup.xaml:
--------------------------------------------------------------------------------
1 |
9 |
11 |
12 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/PropertyGrid/Editors/BrushEditor/BrushEditorView.xaml.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System;
20 | using System.Windows;
21 | using ICSharpCode.WpfDesign.Designer.themes;
22 |
23 | namespace ICSharpCode.WpfDesign.Designer.PropertyGrid.Editors.BrushEditor
24 | {
25 | public partial class BrushEditorView
26 | {
27 | public BrushEditorView()
28 | {
29 | BrushEditor = new BrushEditor();
30 | DataContext = BrushEditor;
31 |
32 | SpecialInitializeComponent();
33 | }
34 |
35 | ///
36 | /// Fixes InitializeComponent with multiple Versions of same Assembly loaded
37 | ///
38 | public void SpecialInitializeComponent()
39 | {
40 | if (!this._contentLoaded) {
41 | this._contentLoaded = true;
42 | Uri resourceLocator = new Uri(VersionedAssemblyResourceDictionary.GetXamlNameForType(this.GetType()), UriKind.Relative);
43 | Application.LoadComponent(this, resourceLocator);
44 | }
45 |
46 | this.InitializeComponent();
47 | }
48 |
49 | public BrushEditor BrushEditor { get; private set; }
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/PropertyGrid/Editors/BrushEditor/BrushTypeEditor.xaml:
--------------------------------------------------------------------------------
1 |
4 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/PropertyGrid/Editors/BrushEditor/GradientBrushEditor.xaml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/PropertyGrid/Editors/BrushEditor/GradientBrushEditor.xaml.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System;
20 | using System.Windows;
21 | using ICSharpCode.WpfDesign.Designer.themes;
22 |
23 | namespace ICSharpCode.WpfDesign.Designer.PropertyGrid.Editors.BrushEditor
24 | {
25 | public partial class GradientBrushEditor
26 | {
27 | public GradientBrushEditor()
28 | {
29 | SpecialInitializeComponent();
30 | }
31 |
32 | ///
33 | /// Fixes InitializeComponent with multiple Versions of same Assembly loaded
34 | ///
35 | public void SpecialInitializeComponent()
36 | {
37 | if (!this._contentLoaded) {
38 | this._contentLoaded = true;
39 | Uri resourceLocator = new Uri(VersionedAssemblyResourceDictionary.GetXamlNameForType(this.GetType()), UriKind.Relative);
40 | Application.LoadComponent(this, resourceLocator);
41 | }
42 |
43 | this.InitializeComponent();
44 | }
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/PropertyGrid/Editors/BrushEditor/SolidBrushEditor.xaml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
12 |
13 |
19 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
34 |
35 |
36 |
39 |
40 |
41 |
44 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/PropertyGrid/Editors/CollectionEditor.xaml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/PropertyGrid/Editors/CollectionTemplateDictionary.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/PropertyGrid/Editors/CollectionTemplateSelector.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows;
3 | using System.Windows.Controls;
4 |
5 | namespace ICSharpCode.WpfDesign.Designer.PropertyGrid.Editors
6 | {
7 | public class CollectionTemplateSelector : DataTemplateSelector
8 | {
9 | public override DataTemplate SelectTemplate(object item, DependencyObject container)
10 | {
11 | FrameworkElement element = container as FrameworkElement;
12 | if (element != null && item != null && item is DesignItem)
13 | {
14 | var di = item as DesignItem;
15 | if (di.Component is Point)
16 | {
17 | return element.FindResource("PointTemplate") as DataTemplate;
18 | }
19 | else if (di.Component is String)
20 | {
21 | return element.FindResource("StringTemplate") as DataTemplate;
22 | }
23 | return element.FindResource("DefaultTemplate") as DataTemplate;
24 | }
25 |
26 | return null;
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/PropertyGrid/Editors/ColorEditor/ColorEditorPopup.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/PropertyGrid/Editors/ColorEditor/ColorEditorPopup.xaml.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System;
20 | using System.Windows;
21 | using System.Windows.Input;
22 | using ICSharpCode.WpfDesign.Designer.themes;
23 |
24 | namespace ICSharpCode.WpfDesign.Designer.PropertyGrid.Editors.ColorEditor
25 | {
26 | public partial class ColorEditorPopup
27 | {
28 | public ColorEditorPopup()
29 | {
30 | SpecialInitializeComponent();
31 | }
32 |
33 | ///
34 | /// Fixes InitializeComponent with multiple Versions of same Assembly loaded
35 | ///
36 | public void SpecialInitializeComponent()
37 | {
38 | if (!this._contentLoaded) {
39 | this._contentLoaded = true;
40 | Uri resourceLocator = new Uri(VersionedAssemblyResourceDictionary.GetXamlNameForType(this.GetType()), UriKind.Relative);
41 | Application.LoadComponent(this, resourceLocator);
42 | }
43 |
44 | this.InitializeComponent();
45 | }
46 |
47 | protected override void OnKeyDown(KeyEventArgs e)
48 | {
49 | if (e.Key == Key.Escape) IsOpen = false;
50 | }
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/PropertyGrid/Editors/ColorEditor/ColorTypeEditor.xaml:
--------------------------------------------------------------------------------
1 |
4 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/PropertyGrid/Editors/ComboBoxEditor.xaml:
--------------------------------------------------------------------------------
1 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/PropertyGrid/Editors/EventEditor.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/PropertyGrid/Editors/NumberEditor.xaml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/PropertyGrid/Editors/OpenCollectionEditor.xaml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
8 |
16 |
17 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/PropertyGrid/Editors/TextBoxEditor.xaml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/PropertyGrid/PropertyContextMenu.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
9 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Services/ChooseClassServiceBase.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System;
20 | using System.Reflection;
21 | using System.Collections.Generic;
22 |
23 | namespace ICSharpCode.WpfDesign.Designer.Services
24 | {
25 | public abstract class ChooseClassServiceBase
26 | {
27 | public Type ChooseClass()
28 | {
29 | var core = new ChooseClass(GetAssemblies());
30 | var window = new ChooseClassDialog(core);
31 |
32 | if (window.ShowDialog().Value) {
33 | return core.CurrentClass;
34 | }
35 | return null;
36 | }
37 |
38 | public abstract IEnumerable GetAssemblies();
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Services/OptionService.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | namespace ICSharpCode.WpfDesign.Designer.Services
20 | {
21 | ///
22 | /// Contains a set of options regarding the default designer components.
23 | ///
24 | public sealed class OptionService
25 | {
26 | ///
27 | /// Gets/Sets whether the design surface should be grayed out while dragging/selection.
28 | ///
29 | public bool GrayOutDesignSurfaceExceptParentContainerWhenDragging = true;
30 |
31 | ///
32 | /// Gets/Sets if the Values should be rounded when using Snapline Placement.
33 | ///
34 | public bool SnaplinePlacementRoundValues = false;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Services/ViewService.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | namespace ICSharpCode.WpfDesign.Designer.Services
20 | {
21 | sealed class DefaultViewService : ViewService
22 | {
23 | readonly DesignContext context;
24 |
25 | public DefaultViewService(DesignContext context)
26 | {
27 | this.context = context;
28 | }
29 |
30 | public override DesignItem GetModel(System.Windows.DependencyObject view)
31 | {
32 | // In the WPF designer, we do not support having a different view for a component
33 | return context.Services.Component.GetDesignItem(view);
34 | }
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Services/WpfTopLevelWindowService.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System.Windows;
20 |
21 | namespace ICSharpCode.WpfDesign.Designer.Services
22 | {
23 | sealed class WpfTopLevelWindowService : ITopLevelWindowService
24 | {
25 | public ITopLevelWindow GetTopLevelWindow(UIElement element)
26 | {
27 | Window window = Window.GetWindow(element);
28 | if (window != null)
29 | return new WpfTopLevelWindow(window);
30 | else
31 | return null;
32 | }
33 |
34 | sealed class WpfTopLevelWindow : ITopLevelWindow
35 | {
36 | Window window;
37 |
38 | public WpfTopLevelWindow(Window window)
39 | {
40 | this.window = window;
41 | }
42 |
43 | public void SetOwner(Window child)
44 | {
45 | child.Owner = window;
46 | }
47 |
48 | public bool Activate()
49 | {
50 | return window.Activate();
51 | }
52 | }
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/Services/XamlErrorService.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using ICSharpCode.WpfDesign.XamlDom;
20 | using System.Collections.ObjectModel;
21 |
22 | namespace ICSharpCode.WpfDesign.Designer.Services
23 | {
24 | public class XamlErrorService : IXamlErrorSink
25 | {
26 | public XamlErrorService()
27 | {
28 | Errors = new ObservableCollection();
29 | }
30 |
31 | public ObservableCollection Errors { get; private set; }
32 |
33 | public void ReportError(string message, int line, int column)
34 | {
35 | Errors.Add(new XamlError() { Message = message, Line = line, Column = column });
36 | }
37 | }
38 |
39 | public class XamlError
40 | {
41 | public string Message { get; set; }
42 | public int Line { get; set; }
43 | public int Column { get; set; }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/StretchDirection.cs:
--------------------------------------------------------------------------------
1 | namespace ICSharpCode.WpfDesign.Designer
2 | {
3 | public enum StretchDirection
4 | {
5 | Width,
6 | Height,
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/ThumbnailView/ThumbnailView.xaml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/WpfDesign.Designer.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | Library
4 | net45;net5.0-windows;net6.0-windows
5 | true
6 | ICSharpCode.WpfDesign.Designer
7 | ..\..\bin\net5.0-windows\ICSharpCode.WpfDesign.Designer.xml
8 | 8.1
9 | 8.1.0.0
10 | 8.1.0.0
11 | ic#code
12 | 2000-2021 AlphaSierraPapa for the SharpDevelop Team
13 | ..\..\bin\
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Project/themes/generic.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Tests/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System.Reflection;
20 | using System.Runtime.CompilerServices;
21 | using System.Runtime.InteropServices;
22 | using System.Threading;
23 | using System.Windows.Markup;
24 |
25 | using NUnit.Framework;
26 |
27 | // Information about this assembly is defined by the following
28 | // attributes.
29 | //
30 | // change them to the information which is associated with the assembly
31 | // you compile.
32 |
33 | [assembly: AssemblyTitle("WpfDesign.Designer.Tests")]
34 | [assembly: AssemblyDescription("")]
35 | [assembly: AssemblyConfiguration("")]
36 | [assembly: AssemblyTrademark("")]
37 | [assembly: AssemblyCulture("")]
38 |
39 | // Run unit tests on STA thread.
40 | [assembly: Apartment(ApartmentState.STA)]
41 |
42 | [assembly: XmlnsPrefix("http://sharpdevelop.net/WpfDesign/Tests/Controls", "sdtcontrols")]
43 |
44 | [assembly: XmlnsDefinition("http://sharpdevelop.net/WpfDesign/Tests/Controls", "ICSharpCode.WpfDesign.Tests.Controls")]
45 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Tests/Test.xaml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Tests/WpfDesign.Tests.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | Library
4 | net45
5 | true
6 | false
7 | ICSharpCode.WpfDesign.Tests
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Tests/XamlDom/ExampleControl.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 |
9 | namespace ICSharpCode.WpfDesign.Tests.XamlDom
10 | {
11 | public class ExampleControl : Control
12 | {
13 | public object Property1
14 | {
15 | get { return (object)GetValue(Property1Property); }
16 | set { SetValue(Property1Property, value); }
17 | }
18 |
19 | public static readonly DependencyProperty Property1Property =
20 | DependencyProperty.Register("Property1", typeof(object), typeof(ExampleControl), new PropertyMetadata(null));
21 |
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Tests/XamlDom/NamscopeTestUsercontrol.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Tests/XamlDom/NamscopeTestUsercontrol.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace ICSharpCode.WpfDesign.Tests.XamlDom
17 | {
18 | ///
19 | /// Interaction logic for NamscopeTestUsercontrol.xaml
20 | ///
21 | public partial class NamscopeTestUsercontrol : UserControl
22 | {
23 | public NamscopeTestUsercontrol()
24 | {
25 | InitializeComponent();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Tests/XamlDom/SystemTypesLoadTest.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System;
20 | using NUnit.Framework;
21 |
22 | namespace ICSharpCode.WpfDesign.Tests.XamlDom
23 | {
24 | [TestFixture]
25 | public class SystemTypesLoadTest : TestHelper
26 | {
27 | [Test]
28 | public void Int32()
29 | {
30 | TestLoading(@"3");
31 | }
32 |
33 | [Test]
34 | public void Double()
35 | {
36 | TestLoading(@"3.1");
37 | }
38 |
39 | [Test]
40 | public void String()
41 | {
42 | TestLoading(@"text");
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/WpfDesign.Designer/Tests/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/WpfDesign.XamlDom/Project/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System;
20 | using System.Reflection;
21 | using System.Runtime.CompilerServices;
22 | using System.Runtime.InteropServices;
23 |
24 | [assembly: CLSCompliant(true)]
25 |
--------------------------------------------------------------------------------
/WpfDesign.XamlDom/Project/DesignInstanceExtension.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows.Markup;
6 |
7 | namespace ICSharpCode.WpfDesign.XamlDom
8 | {
9 | ///
10 | /// A class which implements the DesignInstanceExtension normally defined in the Blend Namespace.
11 | ///
12 | public class DesignInstanceExtension : MarkupExtension
13 | {
14 | ///
15 | /// Initializes a new instance of the class.
16 | ///
17 | /// The type to create.
18 | public DesignInstanceExtension(Type type)
19 | {
20 | this.Type = type;
21 | }
22 |
23 | ///
24 | /// Gets or sets the type to create.
25 | /// Use to specify whether an instance of your type or a designer-generated substitute type is created.
26 | ///
27 | public Type Type { get; set; }
28 |
29 | ///
30 | /// Gets or sets if the design instance is created from your type (true) or of a designer-generated substitute type (false).
31 | ///
32 | public bool IsDesignTimeCreatable { get; set; }
33 |
34 | ///
35 | /// Gets or sets if the design instance is a list of the specified type.
36 | ///
37 | public bool CreateList { get; set; }
38 |
39 | ///
40 | public override object ProvideValue(IServiceProvider serviceProvider)
41 | {
42 | return null;
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/WpfDesign.XamlDom/Project/IXamlErrorSink.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System;
20 | using System.Collections.Generic;
21 | using System.Linq;
22 | using System.Text;
23 |
24 | namespace ICSharpCode.WpfDesign.XamlDom
25 | {
26 | ///
27 | /// Interface where errors during XAML loading are reported.
28 | ///
29 | public interface IXamlErrorSink
30 | {
31 | ///
32 | /// Reports a XAML load error.
33 | ///
34 | void ReportError(string message, int line, int column);
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/WpfDesign.XamlDom/Project/MarkupExtensionWrapperAttribute.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System;
20 |
21 | namespace ICSharpCode.WpfDesign.XamlDom
22 | {
23 | ///
24 | /// Apply this to markup extensions that needs custom behavior of in the designer.
25 | ///
26 | [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)]
27 | public class MarkupExtensionWrapperAttribute : Attribute
28 | {
29 | ///
30 | /// Initializes a new instance of .
31 | ///
32 | /// The wrapper type.
33 | public MarkupExtensionWrapperAttribute(Type markupExtensionWrapperType)
34 | {
35 | MarkupExtensionWrapperType = markupExtensionWrapperType;
36 | }
37 |
38 | ///
39 | /// Gets the wrapper type.
40 | ///
41 | public Type MarkupExtensionWrapperType { get; private set; }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/WpfDesign.XamlDom/Project/WpfDesign.XamlDom.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | Library
4 | net45;net5.0-windows;net6.0-windows
5 | ..\..\bin\net5.0-windows\ICSharpCode.WpfDesign.XamlDom.xml
6 | ..\..\bin\
7 | true
8 | ICSharpCode.WpfDesign.XamlDom
9 | 8.1
10 | 8.1.0.0
11 | 8.1.0.0
12 | ic#code
13 | 2000-2021 AlphaSierraPapa for the SharpDevelop Team
14 |
15 |
--------------------------------------------------------------------------------
/WpfDesign.XamlDom/Project/XamlElementLineInfo.cs:
--------------------------------------------------------------------------------
1 | namespace ICSharpCode.WpfDesign.XamlDom
2 | {
3 | public class XamlElementLineInfo
4 | {
5 | public XamlElementLineInfo(int lineNumber, int linePosition)
6 | {
7 | this.LineNumber = lineNumber;
8 | this.LinePosition = linePosition;
9 | }
10 |
11 | public int LineNumber { get; set; }
12 | public int LinePosition { get; set; }
13 |
14 | public int Position { get; set; }
15 | public int Length { get; set; }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/WpfDesign/Project/Adorners/AdornerPlacementSpace.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System;
20 | using System.Collections.ObjectModel;
21 | using System.Windows;
22 | using System.Windows.Media;
23 |
24 | namespace ICSharpCode.WpfDesign.Adorners
25 | {
26 | ///
27 | /// Describes the space in which an adorner is placed.
28 | ///
29 | public enum AdornerPlacementSpace
30 | {
31 | ///
32 | /// The adorner is affected by the render transform of the adorned element.
33 | ///
34 | Render,
35 | ///
36 | /// The adorner is affected by the layout transform of the adorned element.
37 | ///
38 | Layout,
39 | ///
40 | /// The adorner is not affected by transforms of designed controls.
41 | ///
42 | Designer
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/WpfDesign/Project/Adorners/IAdornerLayer.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | namespace ICSharpCode.WpfDesign.Adorners
20 | {
21 | ///
22 | ///
23 | ///
24 | public interface IAdornerLayer
25 | {
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/WpfDesign/Project/Configuration/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System;
20 | using System.Reflection;
21 | using System.Runtime.CompilerServices;
22 | using System.Runtime.InteropServices;
23 | using System.Windows.Markup;
24 |
25 | [assembly: CLSCompliant(true)]
26 |
27 | [assembly: XmlnsDefinition("http://sharpdevelop.net", "ICSharpCode.WpfDesign.PropertyGrid")]
--------------------------------------------------------------------------------
/WpfDesign/Project/Configuration/CodeAnalysisDictionary.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | lhs
7 | rhs
8 |
9 |
10 |
11 | Lineup
12 |
13 |
14 |
15 | Bestest
16 |
17 |
18 |
19 |
20 |
21 | WiX
22 |
23 |
24 |
--------------------------------------------------------------------------------
/WpfDesign/Project/DesignerException.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System;
20 | using System.Runtime.Serialization;
21 |
22 | namespace ICSharpCode.WpfDesign
23 | {
24 | ///
25 | /// Exception class used for designer failures.
26 | ///
27 | [Serializable]
28 | public class DesignerException : Exception
29 | {
30 | ///
31 | /// Create a new DesignerException instance.
32 | ///
33 | public DesignerException()
34 | {
35 | }
36 |
37 | ///
38 | /// Create a new DesignerException instance.
39 | ///
40 | public DesignerException(string message) : base(message)
41 | {
42 | }
43 |
44 | ///
45 | /// Create a new DesignerException instance.
46 | ///
47 | public DesignerException(string message, Exception innerException) : base(message, innerException)
48 | {
49 | }
50 |
51 | ///
52 | /// Create a new DesignerException instance.
53 | ///
54 | protected DesignerException(SerializationInfo info, StreamingContext context)
55 | : base(info, context)
56 | {
57 | }
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/WpfDesign/Project/Extensions/BehaviorExtension.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | namespace ICSharpCode.WpfDesign.Extensions
20 | {
21 | ///
22 | /// Base class for extensions that provide a behavior interface for the designed item.
23 | /// These extensions are always loaded. They must have an parameter-less constructor.
24 | ///
25 | [ExtensionServer(typeof(DefaultExtensionServer.Permanent))]
26 | public class BehaviorExtension : DefaultExtension
27 | { }
28 | }
29 |
--------------------------------------------------------------------------------
/WpfDesign/Project/Extensions/DefaultInitializer.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System;
20 |
21 | namespace ICSharpCode.WpfDesign.Extensions
22 | {
23 | ///
24 | /// Base class for extensions that initialize new controls with default values.
25 | ///
26 | [ExtensionServer(typeof(NeverApplyExtensionsExtensionServer))]
27 | public abstract class DefaultInitializer : Extension
28 | {
29 | ///
30 | /// Initializes the design item to default values.
31 | ///
32 | public abstract void InitializeDefaults(DesignItem item);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/WpfDesign/Project/Extensions/DesignItemInitializer.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System;
20 |
21 | namespace ICSharpCode.WpfDesign.Extensions
22 | {
23 | ///
24 | /// Instead of "DefaultInitializer" wich is only called for new objects,
25 | /// this Initializer is called for every Instance of a Design Item
26 | ///
27 | [ExtensionServer(typeof(NeverApplyExtensionsExtensionServer))]
28 | public abstract class DesignItemInitializer : Extension
29 | {
30 | ///
31 | /// Initializes the design item.
32 | ///
33 | public abstract void InitializeDesignItem(DesignItem item);
34 | }
35 | }
--------------------------------------------------------------------------------
/WpfDesign/Project/Extensions/ExtensionAttribute.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System;
20 |
21 | namespace ICSharpCode.WpfDesign.Extensions
22 | {
23 | ///
24 | /// Attribute to specify Properties of the Extension.
25 | ///
26 | [AttributeUsage(AttributeTargets.Class, AllowMultiple=false, Inherited=false)]
27 | public sealed class ExtensionAttribute : Attribute
28 | {
29 | ///
30 | /// Gets or sets the Order in wich the extensions are used.
31 | ///
32 | public int Order { get; set; }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/WpfDesign/Project/Extensions/NeverApplyExtensionsExtensionServer.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System;
20 |
21 | namespace ICSharpCode.WpfDesign.Extensions
22 | {
23 | // An extension server that never applies its extensions - used for special extensions
24 | // like CustomInstanceFactory
25 | sealed class NeverApplyExtensionsExtensionServer : ExtensionServer
26 | {
27 | public override bool ShouldApplyExtensions(DesignItem extendedItem)
28 | {
29 | return false;
30 | }
31 |
32 | public override Extension CreateExtension(Type extensionType, DesignItem extendedItem)
33 | {
34 | throw new NotImplementedException();
35 | }
36 |
37 | public override void RemoveExtension(Extension extension)
38 | {
39 | throw new NotImplementedException();
40 | }
41 |
42 | // since the event is never raised, we don't have to store the event handlers
43 | public override event EventHandler ShouldApplyExtensionsInvalidated
44 | {
45 | add { }
46 | remove { }
47 | }
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/WpfDesign/Project/HitTestType.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | namespace ICSharpCode.WpfDesign
20 | {
21 | ///
22 | ///
23 | ///
24 | public enum HitTestType
25 | {
26 | ///
27 | ///
28 | ///
29 | Default,
30 |
31 | ///
32 | ///
33 | ///
34 | ElementSelection,
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/WpfDesign/Project/Interfaces/IObservableList.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System.Collections.Generic;
20 | using System.Collections.Specialized;
21 |
22 |
23 | namespace ICSharpCode.WpfDesign.Interfaces
24 | {
25 | ///
26 | /// A IList wich implements INotifyCollectionChanged
27 | ///
28 | ///
29 | public interface IObservableList : IList, INotifyCollectionChanged
30 | {
31 | }
32 | }
--------------------------------------------------------------------------------
/WpfDesign/Project/Interfaces/IOutlineNode.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System.Collections.Generic;
20 | using System.Collections.ObjectModel;
21 |
22 | namespace ICSharpCode.WpfDesign
23 | {
24 | public interface IOutlineNode
25 | {
26 | ISelectionService SelectionService { get; }
27 | bool IsExpanded { get; set; }
28 | DesignItem DesignItem { get; set; }
29 | ServiceContainer Services { get; }
30 | bool IsSelected { get; set; }
31 | bool IsDesignTimeVisible { get; set; }
32 | bool IsDesignTimeLocked { get; }
33 | string Name { get; }
34 | bool CanInsert(IEnumerable nodes, IOutlineNode after, bool copy);
35 | void Insert(IEnumerable nodes, IOutlineNode after, bool copy);
36 | ObservableCollection Children { get; }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/WpfDesign/Project/MouseInteraction.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2019 AlphaSierraPapa for the SharpDevelop Team
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this
4 | // software and associated documentation files (the "Software"), to deal in the Software
5 | // without restriction, including without limitation the rights to use, copy, modify, merge,
6 | // publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7 | // to whom the Software is furnished to do so, subject to the following conditions:
8 | //
9 | // The above copyright notice and this permission notice shall be included in all copies or
10 | // substantial portions of the Software.
11 | //
12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16 | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 | // DEALINGS IN THE SOFTWARE.
18 |
19 | using System.Windows.Input;
20 |
21 | namespace ICSharpCode.WpfDesign
22 | {
23 | // Interfaces for mouse interaction on the design surface.
24 |
25 | ///
26 | /// Behavior interface implemented by elements to handle the mouse down event
27 | /// on them.
28 | ///
29 | public interface IHandlePointerToolMouseDown
30 | {
31 | ///
32 | /// Called to handle the mouse down event.
33 | ///
34 | void HandleSelectionMouseDown(IDesignPanel designPanel, MouseButtonEventArgs e, DesignPanelHitTestResult result);
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/WpfDesign/Project/Services/ICopyPasteService.cs:
--------------------------------------------------------------------------------
1 | namespace ICSharpCode.WpfDesign.Services
2 | {
3 | public interface ICopyPasteService
4 | {
5 | bool CanCopy(DesignContext designContext);
6 |
7 | void Copy(DesignContext designContext);
8 |
9 | bool CanPaste(DesignContext designContext);
10 |
11 | void Paste(DesignContext designContext);
12 |
13 | bool CanCut(DesignContext designContext);
14 |
15 | void Cut(DesignContext designContext);
16 |
17 | bool CanDelete(DesignContext designContext);
18 |
19 | void Delete(DesignContext designContext);
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/WpfDesign/Project/Services/ISelectionFilterService.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace ICSharpCode.WpfDesign.Services
4 | {
5 | public interface ISelectionFilterService
6 | {
7 | ICollection FilterSelectedElements(ICollection items);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/WpfDesign/Project/UIExtensions/MouseHorizontalWheelEventArgs.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Input;
2 |
3 | namespace ICSharpCode.WpfDesign.UIExtensions
4 | {
5 | public class MouseHorizontalWheelEventArgs : MouseEventArgs
6 | {
7 | public int HorizontalDelta { get; }
8 |
9 | public MouseHorizontalWheelEventArgs(MouseDevice mouse, int timestamp, int horizontalDelta)
10 | : base(mouse, timestamp)
11 | {
12 | HorizontalDelta = horizontalDelta;
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/WpfDesign/Project/WpfDesign.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | Library
4 | net45;net5.0-windows;net6.0-windows
5 | ..\..\bin\net5.0-windows\ICSharpCode.WpfDesign.xml
6 | ..\..\bin\
7 | true
8 | ICSharpCode.WpfDesign
9 | ICSharpCode.WpfDesign
10 | 8.1
11 | 8.1.0.0
12 | 8.1.0.0
13 | ic#code
14 | 2000-2021 AlphaSierraPapa for the SharpDevelop Team
15 |
16 |
--------------------------------------------------------------------------------
/XamlDesigner/App.xaml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/XamlDesigner/BitmapButton.xaml:
--------------------------------------------------------------------------------
1 |
33 |
--------------------------------------------------------------------------------
/XamlDesigner/BitmapButton.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 |
15 | namespace ICSharpCode.XamlDesigner
16 | {
17 | public partial class BitmapButton
18 | {
19 | public BitmapButton()
20 | {
21 | InitializeComponent();
22 | DataContext = this;
23 | }
24 |
25 | public string ImageHover {
26 | get { return "Images/" + GetType().Name + ".Hover.png"; }
27 | }
28 |
29 | public string ImageNormal {
30 | get { return "Images/" + GetType().Name + ".Normal.png"; }
31 | }
32 |
33 | public string ImagePressed {
34 | get { return "Images/" + GetType().Name + ".Pressed.png"; }
35 | }
36 |
37 | public string ImageDisabled {
38 | get { return "Images/" + GetType().Name + ".Disabled.png"; }
39 | }
40 | }
41 |
42 | class CloseButton : BitmapButton
43 | {
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/XamlDesigner/Configuration/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Resources;
3 | using System.Runtime.CompilerServices;
4 | using System.Runtime.InteropServices;
5 | using System.Windows;
6 |
7 | // General Information about an assembly is controlled through the following
8 | // set of attributes. Change these attribute values to modify the information
9 | // associated with an assembly.
10 | [assembly: AssemblyTitle("XamlDesigner")]
11 | [assembly: AssemblyDescription("")]
12 | [assembly: AssemblyConfiguration("")]
13 | [assembly: AssemblyTrademark("")]
14 | [assembly: AssemblyCulture("")]
15 |
16 | //In order to begin building localizable applications, set
17 | //CultureYouAreCodingWith in your .csproj file
18 | //inside a . For example, if you are using US english
19 | //in your source files, set the to en-US. Then uncomment
20 | //the NeutralResourceLanguage attribute below. Update the "en-US" in
21 | //the line below to match the UICulture setting in the project file.
22 |
23 | //[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
24 |
25 |
26 | [assembly: ThemeInfo(
27 | ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
28 | //(used if a resource is not found in the page,
29 | // or application resource dictionaries)
30 | ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
31 | //(used if a resource is not found in the page,
32 | // app, or any theme specific resource dictionaries)
33 | )]
34 |
--------------------------------------------------------------------------------
/XamlDesigner/Configuration/app.manifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/XamlDesigner/Converters.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows.Data;
6 | using System.Globalization;
7 | using System.Windows;
8 | using System.Collections;
9 |
10 | namespace ICSharpCode.XamlDesigner.Converters
11 | {
12 | public class EnumToIntConverter : IValueConverter
13 | {
14 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
15 | {
16 | return (int)value;
17 | }
18 |
19 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
20 | {
21 | return value;
22 | }
23 | }
24 |
25 | public class CollapsedWhenFalse : IValueConverter
26 | {
27 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
28 | {
29 | return (bool)value ? Visibility.Visible : Visibility.Collapsed;
30 | }
31 |
32 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
33 | {
34 | throw new NotImplementedException();
35 | }
36 | }
37 |
38 | public class FalseWhenZero : IValueConverter
39 | {
40 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
41 | {
42 | if (value == null || (int)value == 0) {
43 | return false;
44 | }
45 | return true;
46 | }
47 |
48 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
49 | {
50 | throw new NotImplementedException();
51 | }
52 | }
53 |
54 | public class LevelConverter : IValueConverter
55 | {
56 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
57 | {
58 | return new Thickness(5 + 19 * (int)value, 0, 5, 0);
59 | }
60 |
61 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
62 | {
63 | throw new NotImplementedException();
64 | }
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/XamlDesigner/Converters/ActiveDocumentConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Data;
3 |
4 | namespace ICSharpCode.XamlDesigner.Converters
5 | {
6 | class ActiveDocumentConverter : IValueConverter
7 | {
8 | public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
9 | {
10 | if (value is Document)
11 | return value;
12 |
13 | return Binding.DoNothing;
14 | }
15 |
16 | public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
17 | {
18 | if (value is Document)
19 | return value;
20 |
21 | return Binding.DoNothing;
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/XamlDesigner/Converters/PanesStyleSelector.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using System.Windows.Controls;
3 |
4 | namespace ICSharpCode.XamlDesigner.Converters
5 | {
6 | class PanesStyleSelector : StyleSelector
7 | {
8 | public Style DocumentStyle
9 | {
10 | get;
11 | set;
12 | }
13 |
14 | public override Style SelectStyle(object item, DependencyObject container)
15 | {
16 | if (item is Document)
17 | return DocumentStyle;
18 |
19 | return base.SelectStyle(item, container);
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/XamlDesigner/Converters/PanesTemplateSelector.cs:
--------------------------------------------------------------------------------
1 | using AvalonDock.Layout;
2 | using System.Windows;
3 | using System.Windows.Controls;
4 |
5 | namespace ICSharpCode.XamlDesigner.Converters
6 | {
7 | class PanesTemplateSelector : DataTemplateSelector
8 | {
9 | public DataTemplate DocumentTemplate
10 | {
11 | get;
12 | set;
13 | }
14 | public override DataTemplate SelectTemplate(object item, DependencyObject container)
15 | {
16 | var itemAsLayoutContent = item as LayoutContent;
17 |
18 | if (item is Document)
19 | return DocumentTemplate;
20 |
21 | return base.SelectTemplate(item, container);
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/XamlDesigner/Demo.XamlDesigner.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | WinExe
4 | net6.0-windows
5 | true
6 | false
7 |
8 |
9 |
10 |
11 |
12 | MSBuild:Compile
13 | Always
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/XamlDesigner/DocumentView.xaml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
12 |
13 |
17 |
18 |
19 |
20 |
21 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/XamlDesigner/EnumBar.xaml:
--------------------------------------------------------------------------------
1 |
5 |
7 |
8 |
--------------------------------------------------------------------------------
/XamlDesigner/EnumBar.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 | using System.Windows.Controls.Primitives;
15 |
16 | namespace ICSharpCode.XamlDesigner
17 | {
18 | public partial class EnumBar
19 | {
20 | public EnumBar()
21 | {
22 | InitializeComponent();
23 | }
24 |
25 | Type currentEnumType;
26 |
27 | public static readonly DependencyProperty ValueProperty =
28 | DependencyProperty.Register("Value", typeof(object), typeof(EnumBar),
29 | new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault));
30 |
31 | public object Value {
32 | get { return (object)GetValue(ValueProperty); }
33 | set { SetValue(ValueProperty, value); }
34 | }
35 |
36 | protected override void OnPropertyChanged(DependencyPropertyChangedEventArgs e)
37 | {
38 | base.OnPropertyChanged(e);
39 |
40 | if (e.Property == ValueProperty) {
41 | var type = e.NewValue.GetType();
42 |
43 | if (currentEnumType != type) {
44 | currentEnumType = type;
45 | uxPanel.Children.Clear();
46 | foreach (var v in Enum.GetValues(type)) {
47 | var b = new EnumButton();
48 | b.Value = v;
49 | b.Content = Enum.GetName(type, v);
50 | b.PreviewMouseLeftButtonDown += new MouseButtonEventHandler(button_PreviewMouseLeftButtonDown);
51 | uxPanel.Children.Add(b);
52 | }
53 | }
54 |
55 | foreach (EnumButton c in uxPanel.Children) {
56 | if (c.Value.Equals(Value)) {
57 | c.IsChecked = true;
58 | }
59 | else {
60 | c.IsChecked = false;
61 | }
62 | }
63 | }
64 | }
65 |
66 | void button_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
67 | {
68 | Value = (sender as EnumButton).Value;
69 | e.Handled = true;
70 | }
71 | }
72 | }
73 |
--------------------------------------------------------------------------------
/XamlDesigner/EnumButton.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows.Controls.Primitives;
6 | using System.Windows;
7 |
8 | namespace ICSharpCode.XamlDesigner
9 | {
10 | public class EnumButton : ToggleButton
11 | {
12 | static EnumButton()
13 | {
14 | DefaultStyleKeyProperty.OverrideMetadata(typeof(EnumButton),
15 | new FrameworkPropertyMetadata(typeof(EnumButton)));
16 | }
17 |
18 | public static readonly DependencyProperty ValueProperty =
19 | DependencyProperty.Register("Value", typeof(object), typeof(EnumButton));
20 |
21 | public object Value {
22 | get { return (object)GetValue(ValueProperty); }
23 | set { SetValue(ValueProperty, value); }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/XamlDesigner/ErrorListView.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
11 |
13 |
15 |
17 |
18 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/XamlDesigner/ErrorListView.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Controls;
7 | using System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 | using ICSharpCode.WpfDesign.Designer.Services;
15 |
16 | namespace ICSharpCode.XamlDesigner
17 | {
18 | public partial class ErrorListView
19 | {
20 | public ErrorListView()
21 | {
22 | InitializeComponent();
23 | }
24 |
25 | protected override void OnMouseDoubleClick(MouseButtonEventArgs e)
26 | {
27 | var error = e.GetDataContext() as XamlError;
28 | if (error != null) {
29 | Shell.Instance.JumpToError(error);
30 | }
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/XamlDesigner/Images/Error.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/XamlDesigner/Images/Error.png
--------------------------------------------------------------------------------
/XamlDesigner/Images/Reference.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/XamlDesigner/Images/Reference.png
--------------------------------------------------------------------------------
/XamlDesigner/Images/Tag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/XamlDesigner/Images/Tag.png
--------------------------------------------------------------------------------
/XamlDesigner/MyTypeFinder.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using ICSharpCode.WpfDesign.XamlDom;
3 |
4 | namespace ICSharpCode.XamlDesigner
5 | {
6 | public class MyTypeFinder : XamlTypeFinder
7 | {
8 | public override Assembly LoadAssembly(string name)
9 | {
10 | foreach (var registeredAssembly in RegisteredAssemblies) {
11 | if (registeredAssembly.GetName().Name == name)
12 | return registeredAssembly;
13 | }
14 |
15 | foreach (var assemblyNode in Toolbox.Instance.AssemblyNodes)
16 | {
17 | if (assemblyNode.Name == name)
18 | return assemblyNode.Assembly;
19 | }
20 |
21 | return null;
22 | }
23 |
24 | public override XamlTypeFinder Clone()
25 | {
26 | return _instance;
27 | }
28 |
29 | private static object lockObj = new object();
30 |
31 | private static MyTypeFinder _instance;
32 | public static MyTypeFinder Instance
33 | {
34 | get
35 | {
36 | lock (lockObj)
37 | {
38 | if (_instance == null)
39 | {
40 | _instance = new MyTypeFinder();
41 | _instance.ImportFrom(CreateWpfTypeFinder());
42 | }
43 | }
44 |
45 | return _instance;
46 | }
47 | }
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/XamlDesigner/NewFileTemplate.xaml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
--------------------------------------------------------------------------------
/XamlDesigner/SimpleCommand.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows.Input;
6 |
7 | namespace ICSharpCode.XamlDesigner
8 | {
9 | public class SimpleCommand : RoutedUICommand
10 | {
11 | public SimpleCommand(string text)
12 | {
13 | Text = text;
14 | }
15 |
16 | public SimpleCommand(string text, ModifierKeys modifiers, Key key)
17 | {
18 | InputGestures.Add(new KeyGesture(key, modifiers));
19 | Text = text;
20 | }
21 |
22 | public SimpleCommand(string text, Key key)
23 | : this(text, ModifierKeys.None, key)
24 | {
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/XamlDesigner/TestFiles/1.xaml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/XamlDesigner/TestFiles/2.xaml:
--------------------------------------------------------------------------------
1 |
5 |
53 |
--------------------------------------------------------------------------------
/XamlDesigner/TestFiles/3.xaml:
--------------------------------------------------------------------------------
1 |
6 |
7 | Title
8 | Width
9 |
10 |
11 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/XamlDesigner/TestFiles/4.xaml:
--------------------------------------------------------------------------------
1 |
6 |
7 | Title
8 | Width
9 |
10 |
11 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/XamlDesigner/Themes/Generic.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
--------------------------------------------------------------------------------
/XamlDesigner/ToolboxView.xaml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
15 |
18 |
19 |
20 |
21 |
23 |
24 |
25 |
26 |
27 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/appveyor.yml:
--------------------------------------------------------------------------------
1 | branches:
2 | only:
3 | - master
4 |
5 | version: 8.0.{build}
6 |
7 | image: Visual Studio 2019
8 |
9 | configuration: Release
10 |
11 | assembly_info:
12 | patch: true
13 | file: GlobalAssemblyInfo.*
14 | assembly_version: '{version}'
15 | assembly_file_version: '{version}'
16 | assembly_informational_version: '{version}'
17 |
18 | before_build:
19 | - nuget restore
20 |
21 | build:
22 | project: WpfDesign.sln
23 |
24 | after_build:
25 | - ps: .\nuget\pack.ps1
26 |
27 | test_script:
28 | - cmd: nunit3-console WpfDesign.Designer\Tests\bin\Release\net45\ICSharpCode.WpfDesign.Tests.dll --framework:net-4.5 --result=myresults.xml;format=AppVeyor
29 |
30 | artifacts:
31 | - path: 'ICSharpCode.WpfDesigner.*.nupkg'
32 | name: NuGet
--------------------------------------------------------------------------------
/azure-pipelines.yml:
--------------------------------------------------------------------------------
1 | trigger:
2 | - master
3 |
4 | pr:
5 | - master
6 |
7 | variables:
8 | solution: '**/WpfDesign.sln'
9 | buildPlatform: 'Any CPU'
10 | buildVersion: '8.0.$(Build.BuildId)'
11 |
12 | pool:
13 | vmImage: 'windows-2019'
14 | strategy:
15 | matrix:
16 | Config_Release:
17 | buildConfiguration: 'Release'
18 | Config_Debug:
19 | buildConfiguration: 'Debug'
20 |
21 | steps:
22 | - task: NuGetToolInstaller@1
23 |
24 | - task: NuGetCommand@2
25 | inputs:
26 | restoreSolution: '$(solution)'
27 |
28 | - task: Assembly-Info-NetFramework@2
29 | inputs:
30 | Path: '$(Build.SourcesDirectory)'
31 | FileNames: '**\GlobalAssemblyInfo.*'
32 | InsertAttributes: false
33 | FileEncoding: 'auto'
34 | WriteBOM: false
35 | VersionNumber: '$(buildVersion)'
36 | FileVersionNumber: '$(buildVersion)'
37 | InformationalVersion: '$(buildVersion)'
38 |
39 | - task: VSBuild@1
40 | inputs:
41 | solution: '$(solution)'
42 | msbuildArgs: ''
43 | platform: '$(buildPlatform)'
44 | configuration: '$(buildConfiguration)'
45 |
46 | - task: VSTest@2
47 | inputs:
48 | platform: '$(buildPlatform)'
49 | configuration: '$(buildConfiguration)'
50 |
51 | - powershell: .\nuget\pack.ps1
52 | displayName: Pack
53 | condition: and(succeeded(), eq(variables['BuildConfiguration'], 'Release'))
54 |
55 | - task: CopyFiles@2
56 | displayName: Move to publish directory
57 | inputs:
58 | contents: |
59 | **\*.nupkg
60 | targetFolder: $(Build.ArtifactStagingDirectory)
61 | condition: and(succeeded(), eq(variables['BuildConfiguration'], 'Release'))
62 |
63 | - task: PublishPipelineArtifact@0
64 | displayName: Publish $(BuildConfiguration)
65 | inputs:
66 | targetPath: $(Build.ArtifactStagingDirectory)
67 | condition: and(succeeded(), eq(variables['BuildConfiguration'], 'Release'))
--------------------------------------------------------------------------------
/nuget/WpfDesigner.ExpressionBlendInteractionAddon.nuspec:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ICSharpCode.WpfDesigner.ExpressionBlendInteractionAddon
5 | $version$
6 | WPF Designer
7 | IC#Code
8 | IC#Code
9 | MIT
10 | https://github.com/icsharpcode/WpfDesigner
11 | false
12 | A Designer Framework for WPF UIs - Addon for Expression Interaction
13 | WpfDesigner is the graphical WPF UI designer used in SharpDevelop
14 | Copyright (c) 2015-2021 IC#Code
15 | en-US
16 | WPF XAML Designer UI Editor SharpDevelop WpfDesigner
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/nuget/nuget.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/nuget/nuget.exe
--------------------------------------------------------------------------------
/nuget/pack.ps1:
--------------------------------------------------------------------------------
1 | $root = (split-path -parent $MyInvocation.MyCommand.Definition) + '\..'
2 |
3 | Write-Host "root: $root"
4 |
5 | $version = [System.Reflection.Assembly]::LoadFile("$root\bin\net45\ICSharpCode.WpfDesign.dll").GetName().Version
6 | $versionStr = "{0}.{1}.{2}" -f ($version.Major, $version.Minor, $version.Build)
7 |
8 | Write-Host "Setting .nuspec version tag to $versionStr"
9 |
10 | $content = (Get-Content $root\NuGet\WpfDesigner.nuspec)
11 | $content = $content -replace '\$version\$',$versionStr
12 | $content = $content -replace '\$releasenotes\$',$env:APPVEYOR_REPO_COMMIT_MESSAGE
13 |
14 | $content | Out-File $root\nuget\WpfDesigner.compiled.nuspec
15 |
16 | & $root\nuget\nuget.exe pack $root\nuget\WpfDesigner.compiled.nuspec
17 |
18 | $content = (Get-Content $root\NuGet\WpfDesigner.ExpressionBlendInteractionAddon.nuspec)
19 | $content = $content -replace '\$version\$',$versionStr
20 | $content = $content -replace '\$releasenotes\$',$env:APPVEYOR_REPO_COMMIT_MESSAGE
21 |
22 | $content | Out-File $root\nuget\WpfDesigner.ExpressionBlendInteractionAddon.compiled.nuspec
23 |
24 | & $root\nuget\nuget.exe pack $root\nuget\WpfDesigner.ExpressionBlendInteractionAddon.compiled.nuspec
--------------------------------------------------------------------------------
/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icsharpcode/WpfDesigner/88127f79fb469dafd85da3164ef0d9825e1802ff/screenshot.png
--------------------------------------------------------------------------------