dhq-boiler / boiler-s-graphics Goto Github PK
View Code? Open in Web Editor NEWベクターグラフィックスドローイングツール
License: MIT License
ベクターグラフィックスドローイングツール
License: MIT License
boiler's Graphicsにはまだアプリケーションログが実装されていない。バグの追跡をするために必要なので実装したい。
アプリケーションログはメインメニューのヘルプあたりから開けるようにしておきたい。
ヘルプ→アプリケーションログを開く
カラーピッカーのRGBバーの間に新たにスライダーを設置する。これは例えばRとGの間にあるスライダーならば、値を変更するとRとGに反映される。
描画された画像ファイルを選択している時、塗りつぶし色が変更できてしまいます。これは本来画像ファイルにおいては無効なプロパティになるので、変更不可のサインを設けるべきです。
レイヤーウィンドウでスナップポイントをDeleteキーで削除しようとしたときに
例外が発生した。
System.NullReferenceException: Object reference not set to an instance of an object.
at boilersGraphics.ViewModels.DiagramViewModel.Remove(SelectableDesignerItemViewModelBase item) in D:\a\1\s\boilersGraphics\ViewModels\DiagramViewModel.cs:line 1374
at boilersGraphics.ViewModels.DiagramViewModel.ExecuteRemoveItemCommand(Object parameter) in D:\a\1\s\boilersGraphics\ViewModels\DiagramViewModel.cs:line 1284
at boilersGraphics.ViewModels.DiagramViewModel.<.ctor>b__313_1(Object p) in D:\a\1\s\boilersGraphics\ViewModels\DiagramViewModel.cs:line 230
at boilersGraphics.ViewModels.MainWindowViewModel.ExecuteDeleteSelectedItemsCommand(Object parameter) in D:\a\1\s\boilersGraphics\ViewModels\MainWindowViewModel.cs:line 419
at boilersGraphics.ViewModels.MainWindowViewModel.<.ctor>b__10_0(Object p) in D:\a\1\s\boilersGraphics\ViewModels\MainWindowViewModel.cs:line 98
at System.Windows.Input.CommandManager.TranslateInput(IInputElement targetElement, InputEventArgs inputEventArgs)
at System.Windows.UIElement.OnKeyDownThunk(Object sender, KeyEventArgs e)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
at System.Windows.Input.InputManager.ProcessStagingArea()
at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
at System.Windows.Interop.HwndKeyboardInputProvider.ProcessKeyAction(MSG& msg, Boolean& handled)
at System.Windows.Interop.HwndSource.CriticalTranslateAccelerator(MSG& msg, ModifierKeys modifiers)
at System.Windows.Interop.HwndSource.OnPreprocessMessage(Object param)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
任意の領域を選択してその抽出された領域のみに対してエクスポートする機能があると便利。
円の接線に向かって直線を描画する時、接線のスナップが効くと便利。
設定画面で自動保存をオフにしても、自動保存が実行されてしまう。
画像ファイルツールの開くダイアログのデフォルトファイルタイプが現在JPEG fileになっているが、これは「サポートする画像タイプ(.jpg;.jpeg;.png;.gif;*.bmp)」にすべきでは?
カラーピッカーのRGBバーをマウスホイールで順序を回転させる。
英語圏の人でも使えるように、アプリのテキストとREADME.md、HowToUse.mdをローカライズする。
ログレベルはアプリのメニューから切り替えることができるが、アプリを終了するとログレベル情報が揮発してしまう。ログレベルを変更したらその値をデータベースに記録する。
メニューのヘルプに、GitHubの当プロジェクトのIssueの新しいIssueページ( https://github.com/dhq-boiler/boiler-s-Graphics/issues/new )をブラウザで開くMenuItemを作成する。
アプリケーションログを以下に抜粋する。ログレベルをDEBUGからINFOに変えたはずなのにDEBUGでログが記録されてしまう。
2021-12-15 13:46:50.3922|INFO|boilersGraphics.ViewModels.MainWindowViewModel|ログレベルが変更されました。変更後:Info
2021-12-15 13:46:50.3922|DEBUG|Homura.ORM.Dao`1|UPDATE Statistics_1 SET NumberOfBoots = @val_0, UptimeTicks = @val_1, NumberOfTimesTheFileWasOpenedBySpecifyingIt = @val_2, NumberOfTimesTheAutoSaveFileIsSpecifiedAndOpened = @val_3, NumberOfClicksWithThePointerTool = @val_4, CumulativeTotalOfItemsSelectedWithTheLassoTool = @val_5, NumberOfDrawsOfTheStraightLineTool = @val_6, NumberOfDrawsOfTheRectangleTool = @val_7, NumberOfDrawsOfTheEllipseTool = @val_8, NumberOfDrawsOfTheImageFileTool = @val_9, NumberOfDrawsOfTheLetterTool = @val_10, NumberOfDrawsOfTheVerticalLetterTool = @val_11, NumberOfDrawsOfPolygonTool = @val_12, NumberOfDrawsOfBezierCurveTool = @val_13, NumberOfSnapPointToolInstallations = @val_14, BrushToolDrawCount = @val_15, NumberOfTimesTheEraserToolHasBeenUsed = @val_16, NumberOfTimesSaved = @val_17, NumberOfTimesYouHaveNamedAndSaved = @val_18, NumberOfExports = @val_19, NumberOfJpegExports = @val_20, NumberOfPngExports = @val_21, NumberOfGifExports = @val_22, NumberOfBmpExports = @val_23, NumberOfTiffExports = @val_24, NumberOfWmpExports = @val_25, NumberOfTimesGrouped = @val_26, NumberOfUngrouped = @val_27, NumberOfMovesToTheFrontend = @val_28, NumberOfMovesToTheFront = @val_29, NumberOfMovesToTheBack = @val_30, NumberOfMovesToTheBackend = @val_31, NumberOfTopAlignment = @val_32, NumberOfTimesTheTopAndBottomAreCentered = @val_33, NumberOfBottomAlignment = @val_34, NumberOfLeftAlignment = @val_35, NumberOfTimesLeftAndRightCentered = @val_36, NumberOfRightAlignment = @val_37, NumberOfTimesAlignedLeftAndRight = @val_38, NumberOfTimesAlignedUpAndDown = @val_39, NumberOfTimesToMatchTheWidth = @val_40, NumberOfTimesToMatchTheHeight = @val_41, NumberOfUnions = @val_42, NumberOfIntersects = @val_43, NumberOfXors = @val_44, NumberOfExcludes = @val_45, NumberOfCuts = @val_46, NumberOfCopies = @val_47, NumberOfPasted = @val_48, NumberOfUndos = @val_49, NumberOfRedoes = @val_50, NumberOfTimesAutomaticallySaved = @val_51, NumberOfNewlyCreatedLayers = @val_52, NumberOfDeletedLayers = @val_53, NumberOfTimesTheItemWasDrawn = @val_54, NumberOfTimesTheItemWasDeleted = @val_55, NumberOfLogLevelChanges = @val_56, NumberOfTimesTheVersionInformationDialogWasDisplayed = @val_57, NumberOfTimesTheApplicationLogWasDisplayed = @val_58, NumberOfTimesSliceToolHasBeenUsed = @val_59 WHERE ID = @val_60 [@val_0=135@val_1=64710517907@val_2=41@val_3=0@val_4=0@val_5=0@val_6=1@val_7=6@val_8=1@val_9=1@val_10=0@val_11=0@val_12=0@val_13=0@val_14=0@val_15=0@val_16=0@val_17=0@val_18=0@val_19=20@val_20=20@val_21=0@val_22=0@val_23=0@val_24=0@val_25=0@val_26=0@val_27=0@val_28=0@val_29=0@val_30=0@val_31=0@val_32=0@val_33=0@val_34=0@val_35=0@val_36=0@val_37=0@val_38=0@val_39=0@val_40=0@val_41=0@val_42=0@val_43=0@val_44=0@val_45=0@val_46=0@val_47=0@val_48=0@val_49=0@val_50=0@val_51=163@val_52=0@val_53=0@val_54=14@val_55=0@val_56=144@val_57=4@val_58=20@val_59=24@val_60=00000000-0000-0000-0000-000000000000]
2021-12-15 13:46:53.4239|DEBUG|boilersGraphics.ViewModels.DiagramViewModel|SelectedItems updated
2021-12-15 13:46:53.4278|DEBUG|boilersGraphics.ViewModels.DiagramViewModel|SelectedItems updated
2021-12-15 13:46:53.4278|INFO|boilersGraphics.ViewModels.DiagramViewModel|Add item <NRectangleViewModel>{IsSelected=True,Top=163,Left=533,ZIndex=1,EnableForSelection=True,Width=257,Height=214,IsVisible=True,IsHitTestVisible=False,MouseDoubleClickCommand=Reactive.Bindings.ReactiveCommand,SupportsPropertyDialog=True,MinWidth=0,MinHeight=0,ShowConnectors=False,Right=790,Bottom=377,CenterX=661.5,CenterY=270,CenterPoint={Point:661.5,270},TransformNortification=boilersGraphics.Helpers.TransformNotification,SnapObjs=System.Collections.Generic.List`1[System.IDisposable],SelectedItems=boilersGraphics.ViewModels.SelectableDesignerItemViewModelBase[],Owner=boilersGraphics.ViewModels.DiagramViewModel,SelectItemCommand=Prism.Commands.DelegateCommand`1[System.Object],Id=0,SelectedOrder=1,Matrix=Identity,RotationAngle=0,EdgeColor=#FF000000,EdgeThickness=1,PathGeometry=M533,163L790,163 790,377 533,377z,RotatePathGeometry=null,EnablePathGeometryUpdate=True,CanDrag=True,FillColor=#FFFFFFFF,Name=,ID=62e5d03c-2368-4e58-8ffa-8e88b020169f,ParentID=00000000-0000-0000-0000-000000000000,GroupDisposable=}
2021-12-15 13:46:53.4278|DEBUG|Homura.ORM.Dao`1|UPDATE Statistics_1 SET NumberOfBoots = @val_0, UptimeTicks = @val_1, NumberOfTimesTheFileWasOpenedBySpecifyingIt = @val_2, NumberOfTimesTheAutoSaveFileIsSpecifiedAndOpened = @val_3, NumberOfClicksWithThePointerTool = @val_4, CumulativeTotalOfItemsSelectedWithTheLassoTool = @val_5, NumberOfDrawsOfTheStraightLineTool = @val_6, NumberOfDrawsOfTheRectangleTool = @val_7, NumberOfDrawsOfTheEllipseTool = @val_8, NumberOfDrawsOfTheImageFileTool = @val_9, NumberOfDrawsOfTheLetterTool = @val_10, NumberOfDrawsOfTheVerticalLetterTool = @val_11, NumberOfDrawsOfPolygonTool = @val_12, NumberOfDrawsOfBezierCurveTool = @val_13, NumberOfSnapPointToolInstallations = @val_14, BrushToolDrawCount = @val_15, NumberOfTimesTheEraserToolHasBeenUsed = @val_16, NumberOfTimesSaved = @val_17, NumberOfTimesYouHaveNamedAndSaved = @val_18, NumberOfExports = @val_19, NumberOfJpegExports = @val_20, NumberOfPngExports = @val_21, NumberOfGifExports = @val_22, NumberOfBmpExports = @val_23, NumberOfTiffExports = @val_24, NumberOfWmpExports = @val_25, NumberOfTimesGrouped = @val_26, NumberOfUngrouped = @val_27, NumberOfMovesToTheFrontend = @val_28, NumberOfMovesToTheFront = @val_29, NumberOfMovesToTheBack = @val_30, NumberOfMovesToTheBackend = @val_31, NumberOfTopAlignment = @val_32, NumberOfTimesTheTopAndBottomAreCentered = @val_33, NumberOfBottomAlignment = @val_34, NumberOfLeftAlignment = @val_35, NumberOfTimesLeftAndRightCentered = @val_36, NumberOfRightAlignment = @val_37, NumberOfTimesAlignedLeftAndRight = @val_38, NumberOfTimesAlignedUpAndDown = @val_39, NumberOfTimesToMatchTheWidth = @val_40, NumberOfTimesToMatchTheHeight = @val_41, NumberOfUnions = @val_42, NumberOfIntersects = @val_43, NumberOfXors = @val_44, NumberOfExcludes = @val_45, NumberOfCuts = @val_46, NumberOfCopies = @val_47, NumberOfPasted = @val_48, NumberOfUndos = @val_49, NumberOfRedoes = @val_50, NumberOfTimesAutomaticallySaved = @val_51, NumberOfNewlyCreatedLayers = @val_52, NumberOfDeletedLayers = @val_53, NumberOfTimesTheItemWasDrawn = @val_54, NumberOfTimesTheItemWasDeleted = @val_55, NumberOfLogLevelChanges = @val_56, NumberOfTimesTheVersionInformationDialogWasDisplayed = @val_57, NumberOfTimesTheApplicationLogWasDisplayed = @val_58, NumberOfTimesSliceToolHasBeenUsed = @val_59 WHERE ID = @val_60 [@val_0=135@val_1=64750404231@val_2=41@val_3=0@val_4=0@val_5=0@val_6=1@val_7=6@val_8=1@val_9=1@val_10=0@val_11=0@val_12=0@val_13=0@val_14=0@val_15=0@val_16=0@val_17=0@val_18=0@val_19=20@val_20=20@val_21=0@val_22=0@val_23=0@val_24=0@val_25=0@val_26=0@val_27=0@val_28=0@val_29=0@val_30=0@val_31=0@val_32=0@val_33=0@val_34=0@val_35=0@val_36=0@val_37=0@val_38=0@val_39=0@val_40=0@val_41=0@val_42=0@val_43=0@val_44=0@val_45=0@val_46=0@val_47=0@val_48=0@val_49=0@val_50=0@val_51=163@val_52=0@val_53=0@val_54=15@val_55=0@val_56=144@val_57=4@val_58=20@val_59=24@val_60=00000000-0000-0000-0000-000000000000]
2021-12-15 13:46:53.4468|DEBUG|boilersGraphics.Helpers.SnapAction|_SnapTargetDataContext == null
2021-12-15 13:46:53.4468|DEBUG|Homura.ORM.Dao`1|UPDATE Statistics_1 SET NumberOfBoots = @val_0, UptimeTicks = @val_1, NumberOfTimesTheFileWasOpenedBySpecifyingIt = @val_2, NumberOfTimesTheAutoSaveFileIsSpecifiedAndOpened = @val_3, NumberOfClicksWithThePointerTool = @val_4, CumulativeTotalOfItemsSelectedWithTheLassoTool = @val_5, NumberOfDrawsOfTheStraightLineTool = @val_6, NumberOfDrawsOfTheRectangleTool = @val_7, NumberOfDrawsOfTheEllipseTool = @val_8, NumberOfDrawsOfTheImageFileTool = @val_9, NumberOfDrawsOfTheLetterTool = @val_10, NumberOfDrawsOfTheVerticalLetterTool = @val_11, NumberOfDrawsOfPolygonTool = @val_12, NumberOfDrawsOfBezierCurveTool = @val_13, NumberOfSnapPointToolInstallations = @val_14, BrushToolDrawCount = @val_15, NumberOfTimesTheEraserToolHasBeenUsed = @val_16, NumberOfTimesSaved = @val_17, NumberOfTimesYouHaveNamedAndSaved = @val_18, NumberOfExports = @val_19, NumberOfJpegExports = @val_20, NumberOfPngExports = @val_21, NumberOfGifExports = @val_22, NumberOfBmpExports = @val_23, NumberOfTiffExports = @val_24, NumberOfWmpExports = @val_25, NumberOfTimesGrouped = @val_26, NumberOfUngrouped = @val_27, NumberOfMovesToTheFrontend = @val_28, NumberOfMovesToTheFront = @val_29, NumberOfMovesToTheBack = @val_30, NumberOfMovesToTheBackend = @val_31, NumberOfTopAlignment = @val_32, NumberOfTimesTheTopAndBottomAreCentered = @val_33, NumberOfBottomAlignment = @val_34, NumberOfLeftAlignment = @val_35, NumberOfTimesLeftAndRightCentered = @val_36, NumberOfRightAlignment = @val_37, NumberOfTimesAlignedLeftAndRight = @val_38, NumberOfTimesAlignedUpAndDown = @val_39, NumberOfTimesToMatchTheWidth = @val_40, NumberOfTimesToMatchTheHeight = @val_41, NumberOfUnions = @val_42, NumberOfIntersects = @val_43, NumberOfXors = @val_44, NumberOfExcludes = @val_45, NumberOfCuts = @val_46, NumberOfCopies = @val_47, NumberOfPasted = @val_48, NumberOfUndos = @val_49, NumberOfRedoes = @val_50, NumberOfTimesAutomaticallySaved = @val_51, NumberOfNewlyCreatedLayers = @val_52, NumberOfDeletedLayers = @val_53, NumberOfTimesTheItemWasDrawn = @val_54, NumberOfTimesTheItemWasDeleted = @val_55, NumberOfLogLevelChanges = @val_56, NumberOfTimesTheVersionInformationDialogWasDisplayed = @val_57, NumberOfTimesTheApplicationLogWasDisplayed = @val_58, NumberOfTimesSliceToolHasBeenUsed = @val_59 WHERE ID = @val_60 [@val_0=135@val_1=64750404231@val_2=41@val_3=0@val_4=0@val_5=0@val_6=1@val_7=7@val_8=1@val_9=1@val_10=0@val_11=0@val_12=0@val_13=0@val_14=0@val_15=0@val_16=0@val_17=0@val_18=0@val_19=20@val_20=20@val_21=0@val_22=0@val_23=0@val_24=0@val_25=0@val_26=0@val_27=0@val_28=0@val_29=0@val_30=0@val_31=0@val_32=0@val_33=0@val_34=0@val_35=0@val_36=0@val_37=0@val_38=0@val_39=0@val_40=0@val_41=0@val_42=0@val_43=0@val_44=0@val_45=0@val_46=0@val_47=0@val_48=0@val_49=0@val_50=0@val_51=163@val_52=0@val_53=0@val_54=15@val_55=0@val_56=144@val_57=4@val_58=20@val_59=24@val_60=00000000-0000-0000-0000-000000000000]
2021-12-15 13:46:54.4278|DEBUG|Homura.ORM.Dao`1|UPDATE Statistics_1 SET NumberOfBoots = @val_0, UptimeTicks = @val_1, NumberOfTimesTheFileWasOpenedBySpecifyingIt = @val_2, NumberOfTimesTheAutoSaveFileIsSpecifiedAndOpened = @val_3, NumberOfClicksWithThePointerTool = @val_4, CumulativeTotalOfItemsSelectedWithTheLassoTool = @val_5, NumberOfDrawsOfTheStraightLineTool = @val_6, NumberOfDrawsOfTheRectangleTool = @val_7, NumberOfDrawsOfTheEllipseTool = @val_8, NumberOfDrawsOfTheImageFileTool = @val_9, NumberOfDrawsOfTheLetterTool = @val_10, NumberOfDrawsOfTheVerticalLetterTool = @val_11, NumberOfDrawsOfPolygonTool = @val_12, NumberOfDrawsOfBezierCurveTool = @val_13, NumberOfSnapPointToolInstallations = @val_14, BrushToolDrawCount = @val_15, NumberOfTimesTheEraserToolHasBeenUsed = @val_16, NumberOfTimesSaved = @val_17, NumberOfTimesYouHaveNamedAndSaved = @val_18, NumberOfExports = @val_19, NumberOfJpegExports = @val_20, NumberOfPngExports = @val_21, NumberOfGifExports = @val_22, NumberOfBmpExports = @val_23, NumberOfTiffExports = @val_24, NumberOfWmpExports = @val_25, NumberOfTimesGrouped = @val_26, NumberOfUngrouped = @val_27, NumberOfMovesToTheFrontend = @val_28, NumberOfMovesToTheFront = @val_29, NumberOfMovesToTheBack = @val_30, NumberOfMovesToTheBackend = @val_31, NumberOfTopAlignment = @val_32, NumberOfTimesTheTopAndBottomAreCentered = @val_33, NumberOfBottomAlignment = @val_34, NumberOfLeftAlignment = @val_35, NumberOfTimesLeftAndRightCentered = @val_36, NumberOfRightAlignment = @val_37, NumberOfTimesAlignedLeftAndRight = @val_38, NumberOfTimesAlignedUpAndDown = @val_39, NumberOfTimesToMatchTheWidth = @val_40, NumberOfTimesToMatchTheHeight = @val_41, NumberOfUnions = @val_42, NumberOfIntersects = @val_43, NumberOfXors = @val_44, NumberOfExcludes = @val_45, NumberOfCuts = @val_46, NumberOfCopies = @val_47, NumberOfPasted = @val_48, NumberOfUndos = @val_49, NumberOfRedoes = @val_50, NumberOfTimesAutomaticallySaved = @val_51, NumberOfNewlyCreatedLayers = @val_52, NumberOfDeletedLayers = @val_53, NumberOfTimesTheItemWasDrawn = @val_54, NumberOfTimesTheItemWasDeleted = @val_55, NumberOfLogLevelChanges = @val_56, NumberOfTimesTheVersionInformationDialogWasDisplayed = @val_57, NumberOfTimesTheApplicationLogWasDisplayed = @val_58, NumberOfTimesSliceToolHasBeenUsed = @val_59 WHERE ID = @val_60 [@val_0=135@val_1=64760430063@val_2=41@val_3=0@val_4=0@val_5=0@val_6=1@val_7=7@val_8=1@val_9=1@val_10=0@val_11=0@val_12=0@val_13=0@val_14=0@val_15=0@val_16=0@val_17=0@val_18=0@val_19=20@val_20=20@val_21=0@val_22=0@val_23=0@val_24=0@val_25=0@val_26=0@val_27=0@val_28=0@val_29=0@val_30=0@val_31=0@val_32=0@val_33=0@val_34=0@val_35=0@val_36=0@val_37=0@val_38=0@val_39=0@val_40=0@val_41=0@val_42=0@val_43=0@val_44=0@val_45=0@val_46=0@val_47=0@val_48=0@val_49=0@val_50=0@val_51=163@val_52=0@val_53=0@val_54=15@val_55=0@val_56=144@val_57=4@val_58=20@val_59=24@val_60=00000000-0000-0000-0000-000000000000]
2021-12-15 13:46:57.4221|DEBUG|Homura.ORM.Dao`1|UPDATE Statistics_1 SET NumberOfBoots = @val_0, UptimeTicks = @val_1, NumberOfTimesTheFileWasOpenedBySpecifyingIt = @val_2, NumberOfTimesTheAutoSaveFileIsSpecifiedAndOpened = @val_3, NumberOfClicksWithThePointerTool = @val_4, CumulativeTotalOfItemsSelectedWithTheLassoTool = @val_5, NumberOfDrawsOfTheStraightLineTool = @val_6, NumberOfDrawsOfTheRectangleTool = @val_7, NumberOfDrawsOfTheEllipseTool = @val_8, NumberOfDrawsOfTheImageFileTool = @val_9, NumberOfDrawsOfTheLetterTool = @val_10, NumberOfDrawsOfTheVerticalLetterTool = @val_11, NumberOfDrawsOfPolygonTool = @val_12, NumberOfDrawsOfBezierCurveTool = @val_13, NumberOfSnapPointToolInstallations = @val_14, BrushToolDrawCount = @val_15, NumberOfTimesTheEraserToolHasBeenUsed = @val_16, NumberOfTimesSaved = @val_17, NumberOfTimesYouHaveNamedAndSaved = @val_18, NumberOfExports = @val_19, NumberOfJpegExports = @val_20, NumberOfPngExports = @val_21, NumberOfGifExports = @val_22, NumberOfBmpExports = @val_23, NumberOfTiffExports = @val_24, NumberOfWmpExports = @val_25, NumberOfTimesGrouped = @val_26, NumberOfUngrouped = @val_27, NumberOfMovesToTheFrontend = @val_28, NumberOfMovesToTheFront = @val_29, NumberOfMovesToTheBack = @val_30, NumberOfMovesToTheBackend = @val_31, NumberOfTopAlignment = @val_32, NumberOfTimesTheTopAndBottomAreCentered = @val_33, NumberOfBottomAlignment = @val_34, NumberOfLeftAlignment = @val_35, NumberOfTimesLeftAndRightCentered = @val_36, NumberOfRightAlignment = @val_37, NumberOfTimesAlignedLeftAndRight = @val_38, NumberOfTimesAlignedUpAndDown = @val_39, NumberOfTimesToMatchTheWidth = @val_40, NumberOfTimesToMatchTheHeight = @val_41, NumberOfUnions = @val_42, NumberOfIntersects = @val_43, NumberOfXors = @val_44, NumberOfExcludes = @val_45, NumberOfCuts = @val_46, NumberOfCopies = @val_47, NumberOfPasted = @val_48, NumberOfUndos = @val_49, NumberOfRedoes = @val_50, NumberOfTimesAutomaticallySaved = @val_51, NumberOfNewlyCreatedLayers = @val_52, NumberOfDeletedLayers = @val_53, NumberOfTimesTheItemWasDrawn = @val_54, NumberOfTimesTheItemWasDeleted = @val_55, NumberOfLogLevelChanges = @val_56, NumberOfTimesTheVersionInformationDialogWasDisplayed = @val_57, NumberOfTimesTheApplicationLogWasDisplayed = @val_58, NumberOfTimesSliceToolHasBeenUsed = @val_59 WHERE ID = @val_60 [@val_0=135@val_1=64790365957@val_2=41@val_3=0@val_4=0@val_5=0@val_6=1@val_7=7@val_8=1@val_9=1@val_10=0@val_11=0@val_12=0@val_13=0@val_14=0@val_15=0@val_16=0@val_17=0@val_18=0@val_19=20@val_20=20@val_21=0@val_22=0@val_23=0@val_24=0@val_25=0@val_26=0@val_27=0@val_28=0@val_29=0@val_30=0@val_31=0@val_32=0@val_33=0@val_34=0@val_35=0@val_36=0@val_37=0@val_38=0@val_39=0@val_40=0@val_41=0@val_42=0@val_43=0@val_44=0@val_45=0@val_46=0@val_47=0@val_48=0@val_49=0@val_50=0@val_51=163@val_52=0@val_53=0@val_54=15@val_55=0@val_56=144@val_57=4@val_58=21@val_59=24@val_60=00000000-0000-0000-0000-000000000000]
exeを実行してもアプリが起動しません。
Windows 10 21H1 64bit
下記2バージョンで確認
ver | zip |
---|---|
v4.8.3 | boilersGraphics_180.zip |
unstable-20211107.2 | boilersGraphics_183.zip |
アプリケーション:boilersGraphics.exe
フレームワークのバージョン:v4.0.30319
説明: ハンドルされない例外のため、プロセスが中止されました。
例外情報:System.Data.SQLite.SQLiteException
場所 System.Data.SQLite.SQLite3.Open(System.String, System.String, System.Data.SQLite.SQLiteConnectionFlags, System.Data.SQLite.SQLiteOpenFlagsEnum, Int32, Boolean)
場所 System.Data.SQLite.SQLiteConnection.Open()
場所 Homura.ORM.Connection.OpenConnection()
場所 Homura.ORM.Setup.DbInfoRetriever.GetTableNames(Homura.ORM.IConnection)
場所 Homura.ORM.Setup.VersioningStrategyByTick.UpgradeToTargetVersion(Homura.ORM.IConnection)
場所 Homura.ORM.Setup.DataVersionManager.UpgradeToTargetVersion()
場所 boilersGraphics.ViewModels.MainWindowViewModel..ctor(Prism.Services.Dialogs.IDialogService)
例外情報:System.Reflection.TargetInvocationException
場所 System.RuntimeMethodHandle.InvokeMethod(System.Object, System.Object[], System.Signature, Boolean)
場所 System.Reflection.RuntimeConstructorInfo.Invoke(System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo)
場所 Unity.Processors.ConstructorProcessor+<>c__DisplayClass16_0.<GetResolverDelegate>b__0(Unity.Builder.BuilderContext ByRef)
場所 Unity.Processors.MemberProcessor`2+<>c__DisplayClass8_0[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<GetResolver>b__0(Unity.Builder.BuilderContext ByRef)
場所 Unity.Processors.MemberProcessor`2+<>c__DisplayClass8_0[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<GetResolver>b__0(Unity.Builder.BuilderContext ByRef)
場所 Unity.Processors.MemberProcessor`2+<>c__DisplayClass8_0[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<GetResolver>b__0(Unity.Builder.BuilderContext ByRef)
場所 Unity.Strategies.BuildPlanStrategy.PreBuildUp(Unity.Builder.BuilderContext ByRef)
場所 Unity.UnityContainer+<>c.<.ctor>b__73_1(Unity.Builder.BuilderContext ByRef)
例外情報:Unity.ResolutionFailedException
場所 Unity.UnityContainer+<>c.<.ctor>b__73_1(Unity.Builder.BuilderContext ByRef)
場所 Unity.UnityContainer.Unity.IUnityContainer.Resolve(System.Type, System.String, Unity.Resolution.ResolverOverride[])
場所 Prism.Unity.UnityContainerExtension.Resolve(System.Type, System.ValueTuple`2<System.Type,System.Object>[])
例外情報:Prism.Ioc.ContainerResolutionException
場所 Prism.Unity.UnityContainerExtension.Resolve(System.Type, System.ValueTuple`2<System.Type,System.Object>[])
場所 Prism.Mvvm.ViewModelLocationProvider.AutoWireViewModelChanged(System.Object, System.Action`2<System.Object,System.Object>)
場所 Prism.Mvvm.ViewModelLocator.AutoWireViewModelChanged(System.Windows.DependencyObject, System.Windows.DependencyPropertyChangedEventArgs)
場所 System.Windows.DependencyObject.OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs)
場所 System.Windows.FrameworkElement.OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs)
場所 System.Windows.DependencyObject.NotifyPropertyChange(System.Windows.DependencyPropertyChangedEventArgs)
場所 System.Windows.DependencyObject.UpdateEffectiveValue(System.Windows.EntryIndex, System.Windows.DependencyProperty, System.Windows.PropertyMetadata, System.Windows.EffectiveValueEntry, System.Windows.EffectiveValueEntry ByRef, Boolean, Boolean, System.Windows.OperationType)
場所 System.Windows.DependencyObject.SetValueCommon(System.Windows.DependencyProperty, System.Object, System.Windows.PropertyMetadata, Boolean, Boolean, System.Windows.OperationType, Boolean)
場所 System.Windows.Baml2006.WpfMemberInvoker.SetValue(System.Object, System.Object)
場所 MS.Internal.Xaml.Runtime.ClrObjectRuntime.SetValue(System.Object, System.Xaml.XamlMember, System.Object)
例外情報:System.Windows.Markup.XamlParseException
場所 System.Windows.Markup.XamlReader.RewrapException(System.Exception, System.Xaml.IXamlLineInfo, System.Uri)
場所 System.Windows.Markup.WpfXamlLoader.Load(System.Xaml.XamlReader, System.Xaml.IXamlObjectWriterFactory, Boolean, System.Object, System.Xaml.XamlObjectWriterSettings, System.Uri)
場所 System.Windows.Markup.WpfXamlLoader.LoadBaml(System.Xaml.XamlReader, Boolean, System.Object, System.Xaml.Permissions.XamlAccessLevel, System.Uri)
場所 System.Windows.Markup.XamlReader.LoadBaml(System.IO.Stream, System.Windows.Markup.ParserContext, System.Object, Boolean)
例外情報:System.Reflection.TargetInvocationException
場所 System.RuntimeMethodHandle.InvokeMethod(System.Object, System.Object[], System.Signature, Boolean)
場所 System.Reflection.RuntimeConstructorInfo.Invoke(System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo)
場所 Unity.Processors.ConstructorProcessor+<>c__DisplayClass16_0.<GetResolverDelegate>b__0(Unity.Builder.BuilderContext ByRef)
場所 Unity.Processors.MemberProcessor`2+<>c__DisplayClass8_0[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<GetResolver>b__0(Unity.Builder.BuilderContext ByRef)
場所 Unity.Processors.MemberProcessor`2+<>c__DisplayClass8_0[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<GetResolver>b__0(Unity.Builder.BuilderContext ByRef)
場所 Unity.Processors.MemberProcessor`2+<>c__DisplayClass8_0[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<GetResolver>b__0(Unity.Builder.BuilderContext ByRef)
場所 Unity.Strategies.BuildPlanStrategy.PreBuildUp(Unity.Builder.BuilderContext ByRef)
場所 Unity.UnityContainer+<>c.<.ctor>b__73_1(Unity.Builder.BuilderContext ByRef)
例外情報:Unity.ResolutionFailedException
場所 Unity.UnityContainer+<>c.<.ctor>b__73_1(Unity.Builder.BuilderContext ByRef)
場所 Unity.UnityContainer.Unity.IUnityContainer.Resolve(System.Type, System.String, Unity.Resolution.ResolverOverride[])
場所 Prism.Unity.UnityContainerExtension.Resolve(System.Type, System.ValueTuple`2<System.Type,System.Object>[])
例外情報:Prism.Ioc.ContainerResolutionException
場所 Prism.Unity.UnityContainerExtension.Resolve(System.Type, System.ValueTuple`2<System.Type,System.Object>[])
場所 Prism.Ioc.IContainerProviderExtensions.Resolve[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](Prism.Ioc.IContainerProvider)
場所 Prism.PrismApplicationBase.Initialize()
場所 Prism.PrismApplicationBase.InitializeInternal()
場所 boilersGraphics.App.OnStartup(System.Windows.StartupEventArgs)
場所 System.Windows.Application.<.ctor>b__1_0(System.Object)
場所 System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
場所 System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
場所 System.Windows.Threading.DispatcherOperation.InvokeImpl()
場所 MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(System.Object)
場所 System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
場所 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
場所 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
場所 MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext, System.Threading.ContextCallback, System.Object)
場所 System.Windows.Threading.DispatcherOperation.Invoke()
場所 System.Windows.Threading.Dispatcher.ProcessQueue()
場所 System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
場所 MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
場所 MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
場所 System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
場所 System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
場所 System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
場所 MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
場所 MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
場所 System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
場所 System.Windows.Application.RunDispatcher(System.Object)
場所 System.Windows.Application.RunInternal(System.Windows.Window)
場所 boilersGraphics.App.Main()
MainWindowViewModel(49)にて、%Appdata%\dhq_boiler\boilersGraphicsフォルダをdbファイルの置き場所としていますが、新規実行の環境では、該当のフォルダが存在しないためファイル作成に失敗しているように見えます。
フォルダを作成するとアプリケーションは起動します。よって、フォルダ作成処理の追加を提案します。
// using System.IO;
var dbDirectory = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), @"dhq_boiler\boilersGraphics");
var dbFilePath = Path.Combine(dbDirectory, "bg.db");
Directory.CreateDirectory(dbDirectory);
ConnectionManager.SetDefaultConnection($"DataSource={dbFilePath}", typeof(SQLiteConnection));
直線とベジエ曲線で共通して発生するバグがあります。
例えば直線を描画した後、始点や終点の位置を操作すると、線の太さが0ptになります。
またベジエ曲線でも同様で始点や終点、制御点を操作すると、線の太さが0ptになります。
図形をダブルクリックすることでダイアログが表示されるようにする。
その中では図形の左、上、右、下、中心の点の座標がテキストボックスで変更できるようになっていて、それを変更すると図形の形状が変更される。
回転した図形をデュプリケートコマンド(Ctrl+D)で複製すると
複製した図形の回転角度が元の図形の回転角度の2倍になりおかしい。
新機能ダイアログを実装する。
これはアプリアップデート後の初回の起動時に表示する。
ReleaseNote.mdの内容を表示する。
ボタンはOKボタンのみ。
多角形ツールを使う時、図形を回転させたい時がある。
でも現行だと、いちいち入力したものを一つ一つ修正しなければならないので、
スライダーで角度を0°≦θ≦360°で指定できるようにしてほしい。
複製した図形をポインターツールでクリックしようとしても、判定がなく選択できない。
再度ポインターツールを選択し、クリックすれば選択可能。
複製した直線の頂点のスナップポイントを操作できない。
ベジエ曲線も同様の問題を抱えている様子。
ヘルプに当リポジトリのHowToUse.mdへのリンクを載せる。
Surface Proのタッチディスプレイで操作していたところ、
直線ツールで描画しようとしたときに例外が発生した。
System.NullReferenceException: Object reference not set to an instance of an object.
at boilersGraphics.Adorners.StraightLineAdorner.OnMouseUp(MouseButtonEventArgs e) in D:\a\1\s\boilersGraphics\Adorners\StraightLineAdorner.cs:line 84
at System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)
at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
at System.Windows.Input.InputManager.ProcessStagingArea()
at System.Windows.Input.StylusWisp.WispLogic.PromoteMainToMouse(StagingAreaInputItem stagingItem)
at System.Windows.Input.StylusWisp.WispLogic.PromoteMainUpToTouch(WispStylusDevice stylusDevice, StagingAreaInputItem stagingItem)
at System.Windows.Input.StylusWisp.WispLogic.PromoteMainToTouch(ProcessInputEventArgs e, StylusEventArgs stylusEventArgs)
at System.Windows.Input.StylusWisp.WispLogic.PostProcessInput(Object sender, ProcessInputEventArgs e)
at System.Windows.Input.InputManager.RaiseProcessInputEventHandlers(Tuple`2 postProcessInput, ProcessInputEventArgs processInputEventArgs)
at System.Windows.Input.InputManager.ProcessStagingArea()
at System.Windows.Input.StylusWisp.WispLogic.InputManagerProcessInput(Object oInput)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
ミラーツールを実装する。点対称モードと線対称モードを実装する。
カラーピッカーのカラーマップのツマミを操作する時、デバイスをキャプチャーするようにする。これをすることで、ツマミ操作中マップ外にマウスポインタが移動しても、追従するようになる。
図形を描画する時に以下のスナップポイントがないと不便。
自動保存したデータは一時領域に積んでいくことになる。これを遡って必要なデータのみを保存できるようにするには自動保存したデータ群一つ一つを閲覧できるようにしユーザが目視で確認したデータを保存できるようにする。一時領域に積まれたデータ群はいつ消すべきかは議論が分かれるところだと思う。
スライスツールを実装したは良いものの、その使用回数を統計情報として記録していなかったので、実装する。
Surface Proでテストしていた時に例外が発生した。
いくつかのスナップポイントを設置した後、スライスツールを使用した時に例外が発生した。
Prism.Ioc.ContainerResolutionException: An unexpected error occurred while resolving 'System.Object', with the service name 'Export'
---> Unity.ResolutionFailedException: Exception has been thrown by the target of an invocation.
Exception occurred while:
on constructor: Export()
(System.Object, boilersGraphics.Views.Export, Export)
---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
---> System.Windows.Markup.XamlParseException: プロパティ 'Prism.Mvvm.ViewModelLocator.AutoWireViewModel' の Set で例外がスローされました。
---> Prism.Ioc.ContainerResolutionException: An unexpected error occurred while resolving 'boilersGraphics.ViewModels.ExportViewModel'
---> Unity.ResolutionFailedException: Exception has been thrown by the target of an invocation.
Exception occurred while:
on constructor: ExportViewModel()
• while resolving: ExportViewModel
---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
---> System.InvalidOperationException: Sequence contains no matching element
at System.Linq.ThrowHelper.ThrowNoMatchException()
at boilersGraphics.ViewModels.ExportViewModel.RenderForeground(DiagramViewModel diagramViewModel, DesignerCanvas designerCanvas, DrawingContext context, BackgroundViewModel background) in D:\a\1\s\boilersGraphics\ViewModels\ExportViewModel.cs:line 188
at boilersGraphics.ViewModels.ExportViewModel.Render(DesignerCanvas designerCanvas, DiagramViewModel diagramViewModel, BackgroundViewModel backgroundItem) in D:\a\1\s\boilersGraphics\ViewModels\ExportViewModel.cs:line 158
at boilersGraphics.ViewModels.ExportViewModel.<>c__DisplayClass33_0.<.ctor>b__5(Nullable1 x) in D:\a\1\s\boilersGraphics\ViewModels\ExportViewModel.cs:line 74 at System.Reactive.AnonymousObserver
1.OnNextCore(T value) in /_/Rx.NET/Source/src/System.Reactive/AnonymousObserver.cs:line 67
at System.Reactive.ObserverBase1.OnNext(T value) in /_/Rx.NET/Source/src/System.Reactive/ObserverBase.cs:line 34 at Reactive.Bindings.ReactivePropertySlim
1.Subscribe(IObserver1 observer) at System.ObservableExtensions.Subscribe[T](IObservable
1 source, Action1 onNext) in /_/Rx.NET/Source/src/System.Reactive/Observable.Extensions.cs:line 63 at boilersGraphics.ViewModels.ExportViewModel..ctor() in D:\a\1\s\boilersGraphics\ViewModels\ExportViewModel.cs:line 68 --- End of inner exception stack trace --- at System.RuntimeMethodHandle.InvokeMethod(Object target, Span
1& arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Unity.Processors.ConstructorDiagnostic.<>c__DisplayClass14_0.b__0(BuilderContext& c)
at Unity.Processors.MemberProcessor2.<>c__DisplayClass8_0.<GetResolver>b__0(BuilderContext& c) at Unity.Processors.MemberProcessor
2.<>c__DisplayClass8_0.b__0(BuilderContext& c)
at Unity.Processors.MemberProcessor2.<>c__DisplayClass8_0.<GetResolver>b__0(BuilderContext& c) at Unity.UnityContainer.<>c__DisplayClass113_0.<OptimizingFactory>b__0(BuilderContext& c) at Unity.Strategies.BuildPlanStrategy.PreBuildUp(BuilderContext& context) at Unity.UnityContainer.ExecuteValidatingPlan(BuilderContext& context) --- End of inner exception stack trace --- at Unity.UnityContainer.ExecuteValidatingPlan(BuilderContext& context) at Unity.UnityContainer.Unity.IUnityContainer.Resolve(Type type, String name, ResolverOverride[] overrides) at Prism.Unity.UnityContainerExtension.Resolve(Type type, ValueTuple
2[] parameters)
--- End of inner exception stack trace ---
at Prism.Unity.UnityContainerExtension.Resolve(Type type, ValueTuple`2[] parameters)
Exception details truncated at 4000 chars.
boilersGraphics_logo_new_new.zip
上記xmlファイルでエクスポートすると、回転させているはずの図形がエクスポート画面では回転していないことになっている。また、そのままエクスポートすると、回転していない図形が出力される。
多角形ツールで描画した後、頂点にスナップポイントを設置することで利便性を高める。すべての頂点にスナップポイントを設置する。
メインメニューのヘルプにログ項目を設け、そこでログレベルを変更できるようにする。同じ階層にアプリケーションログを開くがある。
作業中にアプリが落ちる時がたまにある。そんなときに限って作業内容を保存していない時がよくあるので、自動保存機能を実装してほしい。
Surface Proのタッチディスプレイで操作していたところ、
四角形ツールで描画しようとしたときに例外が発生した。
System.NullReferenceException: Object reference not set to an instance of an object.
at boilersGraphics.Adorners.RectangleAdorner.OnMouseUp(MouseButtonEventArgs e) in D:\a\1\s\boilersGraphics\Adorners\RectangleAdorner.cs:line 74
at System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)
at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
at System.Windows.Input.InputManager.ProcessStagingArea()
at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
at System.Windows.Input.StylusWisp.WispLogic.PromoteMainToMouse(StagingAreaInputItem stagingItem)
at System.Windows.Input.StylusWisp.WispLogic.PromoteMainUpToTouch(WispStylusDevice stylusDevice, StagingAreaInputItem stagingItem)
at System.Windows.Input.StylusWisp.WispLogic.PromoteMainToTouch(ProcessInputEventArgs e, StylusEventArgs stylusEventArgs)
at System.Windows.Input.StylusWisp.WispLogic.PromoteMainToOther(ProcessInputEventArgs e)
at System.Windows.Input.StylusWisp.WispLogic.PostProcessInput(Object sender, ProcessInputEventArgs e)
at System.Windows.Input.InputManager.RaiseProcessInputEventHandlers(Tuple`2 postProcessInput, ProcessInputEventArgs processInputEventArgs)
at System.Windows.Input.InputManager.ProcessStagingArea()
at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
at System.Windows.Input.StylusWisp.WispLogic.InputManagerProcessInput(Object oInput)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
図形描画時、変形時にアプリケーションログを書き込む。
ファイル→開く→自動保存したファイルを指定→(自動保存ファイルのリスト)というように表示されるが、このリストのMenuItemのヘッダーに自動保存ファイル名が指定されている。これを「自動保存ファイル名 + ファイルサイズ」のようにファイルサイズを追加したい。
扇形を描画するツールを新たに実装したい。
パラメーター
このツールでは連続3クリックで扇形を描画する。
描画プロパティ画面で短径、長径の指定ができたら面白いかもしれない。
スナップポイントに吸着した図形はそのスナップポイントが動くのに合わせて形を変えるようにする。
様々なアクティビティ(アプリ起動回数、ツールの使用回数など)を記録して、メインメニューのヘルプ→統計から閲覧することができるとよい。
統計情報はSQLiteのデータベースに保存するようにする。(任意のタイミングで削除できる)
ORMライブラリはHomuraを使用する。
https://www.nuget.org/packages/Homura
縦書きツールで描画した縦書きオブジェクトを複製すると横書きになってしまう。
文字ツールと縦書きツールのアイコンの背景がWhiteになっている。
これを透明(Transparent)に変更する。
アイコンの画像のフォーマットはpngにする。
描画プロパティ画面に回転を入れ忘れたので、回転(°)を実装する。
単位は度とする。(ラジアンではない)
ファイル→開く→自動保存したファイルを指定→(自動保存ファイルのリスト)というように表示される。自動保存ファイルをホバーすると、右にポップアップウィンドウでそのファイルを開いた時のプレビューが表示されるようにする。
バージョンダイアログを開こうとした時に例外が発生した。
Prism.Ioc.ContainerResolutionException: An unexpected error occurred while resolving 'System.Object', with the service name 'Version'
---> Unity.ResolutionFailedException: Exception has been thrown by the target of an invocation.
Exception occurred while:
on constructor: Version()
(System.Object, boilersGraphics.Views.Version, Version)
---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
---> System.Windows.Markup.XamlParseException: プロパティ 'Prism.Mvvm.ViewModelLocator.AutoWireViewModel' の Set で例外がスローされました。
---> Prism.Ioc.ContainerResolutionException: An unexpected error occurred while resolving 'boilersGraphics.ViewModels.VersionViewModel'
---> Unity.ResolutionFailedException: Exception has been thrown by the target of an invocation.
Exception occurred while:
on constructor: VersionViewModel()
• while resolving: VersionViewModel
---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
---> System.Net.WebException: An exception occurred during a WebClient request.
---> System.UnauthorizedAccessException: Access to the path 'C:\WINDOWS\system32\LICENSE' is denied.
at Microsoft.Win32.SafeHandles.SafeFileHandle.CreateFile(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options)
at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize)
at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize)
at System.IO.Strategies.FileStreamHelpers.ChooseStrategyCore(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize)
at System.IO.Strategies.FileStreamHelpers.ChooseStrategy(FileStream fileStream, String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, Int64 preallocationSize)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)
at System.Net.WebClient.DownloadFile(Uri address, String fileName)
--- End of inner exception stack trace ---
at System.Net.WebClient.DownloadFile(Uri address, String fileName)
at System.Net.WebClient.DownloadFile(String address, String fileName)
at boilersGraphics.ViewModels.VersionViewModel.DownloadFile(WebClient client, String url, String file)
at boilersGraphics.ViewModels.VersionViewModel.LicenseReadToEnd()
at boilersGraphics.ViewModels.VersionViewModel..ctor()
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Span1& arguments, Signature sig, Boolean constructor, Boolean wrapExceptions) at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at Unity.Processors.ConstructorDiagnostic.<>c__DisplayClass14_0.<GetResolverDelegate>b__0(BuilderContext& c) at Unity.Processors.MemberProcessor
2.<>c__DisplayClass8_0.b__0(BuilderContext& c)
at Unity.Processors.MemberProcessor2.<>c__DisplayClass8_0.<GetResolver>b__0(BuilderContext& c) at Unity.Processors.MemberProcessor
2.<>c__DisplayClass8_0.b__0(BuilderContext& c)
at Unity.UnityContainer.<>c__DisplayClass113_0.b__0(BuilderContext& c)
at Unity.Strategies.BuildPlanStrategy.PreBuildUp(BuilderContext& context)
at Unity.UnityContainer.ExecuteValidatingPlan(BuilderContext& context)
--- End of inner exception stack trace ---
at Unity.UnityContainer.ExecuteValidatingPlan(BuilderContext& context)
at Unity.UnityContainer.Unity.IUnityContainer.Resolve(Type type, String name, Resolv
Exception details truncated at 4000 chars.
画像ツールは画像ファイルをxmlファイルに埋め込んでいるわけではないので、
画像を描画してxmlファイルを保存した後、再度同じxmlファイルを開くと、画像ファイルが存在しない場合正しく表示されなくなる。
画像ツールを使う時に画像ファイルをxmlファイルに埋め込む必要がある。
予め、設定ダイアログで「画像ツールを使う時は画像ファイルを埋め込む」オプションにより設定しておく等することで、この問題を回避することができるだろう。
プライバシーポリシーの同意取得をアプリ上で行う。
プライバシーポリシーに同意しなかった場合は、アプリを終了する。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.