├── .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) | [![Build](https://github.com/icsharpcode/WpfDesigner/actions/workflows/dotnet.yml/badge.svg)](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 | ![Sample App](/screenshot.png?raw=true "Sample App") 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 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /WpfDesign.Designer/Project/Extensions/DefaultCommandsContextMenu.xaml: -------------------------------------------------------------------------------- 1 |  4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /WpfDesign.Designer/Project/Extensions/EditStyleContextMenu.xaml: -------------------------------------------------------------------------------- 1 |  6 | 7 | 8 | 9 | 10 | 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 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /WpfDesign.Designer/Project/Extensions/RightClickContextMenu.xaml: -------------------------------------------------------------------------------- 1 |  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/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 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /WpfDesign.Designer/Project/Extensions/UnwrapItemContextMenu.xaml: -------------------------------------------------------------------------------- 1 |  6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /WpfDesign.Designer/Project/Extensions/WrapItemContextMenu.xaml: -------------------------------------------------------------------------------- 1 |  6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /WpfDesign.Designer/Project/Extensions/WrapItemsContextMenu.xaml: -------------------------------------------------------------------------------- 1 |  6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 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 | 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 | 9 | 10 | 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 | 6 | 13 | 18 | 19 | 28 | 29 | 30 | 35 | 40 | 45 | 46 | 47 |