diff --git a/src/Artemis.UI/Screens/VisualScripting/NodeScriptView.axaml.cs b/src/Artemis.UI/Screens/VisualScripting/NodeScriptView.axaml.cs index 1225ea76f..eed8b7c31 100644 --- a/src/Artemis.UI/Screens/VisualScripting/NodeScriptView.axaml.cs +++ b/src/Artemis.UI/Screens/VisualScripting/NodeScriptView.axaml.cs @@ -6,6 +6,7 @@ using Artemis.UI.Shared.Events; using Avalonia; using Avalonia.Controls; using Avalonia.Controls.PanAndZoom; +using Avalonia.Controls.Primitives; using Avalonia.Input; using Avalonia.Interactivity; using Avalonia.Markup.Xaml; @@ -69,7 +70,7 @@ public partial class NodeScriptView : ReactiveUserControl if (ViewModel == null) return; - NodeScriptZoomBorder?.ContextFlyout?.ShowAt(NodeScriptZoomBorder); + ((PopupFlyoutBase?) NodeScriptZoomBorder?.ContextFlyout)?.ShowAt(NodeScriptZoomBorder, true); ViewModel.NodePickerViewModel.Position = point; } diff --git a/src/Artemis.VisualScripting/Converters/JsonConverter.cs b/src/Artemis.VisualScripting/Converters/JsonConverter.cs new file mode 100644 index 000000000..f0b9b7820 --- /dev/null +++ b/src/Artemis.VisualScripting/Converters/JsonConverter.cs @@ -0,0 +1,26 @@ +using System.Globalization; +using Artemis.Core; +using Avalonia.Data.Converters; +using Newtonsoft.Json; + +namespace Artemis.VisualScripting.Converters; + +/// +/// Converts input into . +/// +public class JsonConverter : IValueConverter +{ + /// + public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture) + { + return JsonConvert.SerializeObject(value, Formatting.Indented); + } + + /// + public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) + { + if (value == null) + return null; + return JsonConvert.DeserializeObject(value.ToString(), targetType); + } +} \ No newline at end of file diff --git a/src/Artemis.VisualScripting/Nodes/Static/Screens/DisplayValueNodeCustomView.axaml b/src/Artemis.VisualScripting/Nodes/Static/Screens/DisplayValueNodeCustomView.axaml index 100dd461b..ba18c0cf0 100644 --- a/src/Artemis.VisualScripting/Nodes/Static/Screens/DisplayValueNodeCustomView.axaml +++ b/src/Artemis.VisualScripting/Nodes/Static/Screens/DisplayValueNodeCustomView.axaml @@ -7,12 +7,15 @@ xmlns:core="clr-namespace:Artemis.Core;assembly=Artemis.Core" xmlns:converters1="clr-namespace:Artemis.UI.Shared.Converters;assembly=Artemis.UI.Shared" xmlns:collections="clr-namespace:System.Collections;assembly=System.Runtime" + xmlns:system="clr-namespace:System;assembly=System.Runtime" + xmlns:converters="clr-namespace:Artemis.VisualScripting.Converters" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" x:Class="Artemis.VisualScripting.Nodes.Static.Screens.DisplayValueNodeCustomView" x:DataType="screens:DisplayValueNodeCustomViewModel"> + @@ -44,11 +47,9 @@ - - - - - + + +