Files
bluflame/intromat/Intromat/Views/ShaderFileView.xaml.cs
2026-04-18 22:31:51 +02:00

45 lines
1.3 KiB
C#

using System;
using System.IO;
using System.Reactive.Disposables;
using System.Windows;
using System.Xml;
using ICSharpCode.AvalonEdit.Highlighting;
using ICSharpCode.AvalonEdit.Highlighting.Xshd;
using Intromat.ViewModels;
using ReactiveUI;
namespace Intromat.Views
{
/// <summary>
/// Interaction logic for ShaderFileView.xaml
/// </summary>
public partial class ShaderFileView : IViewFor<ShaderFileViewModel>
{
static ShaderFileView()
{
using var s = Application.GetResourceStream(new Uri("Resources/HLSL-Mode.xshd", UriKind.Relative))!.Stream;
using var reader = new XmlTextReader(s);
HighlightingManager.Instance.RegisterHighlighting("HLSL", new string[0], HighlightingLoader.Load(reader, HighlightingManager.Instance));
}
public ShaderFileView()
{
InitializeComponent();
this.WhenActivated(d =>
{
var documentViewModel = ViewModel!;
this.Bind(documentViewModel, vm => vm.Source, v => v._textEditor.Text).DisposeWith(d);
});
}
object? IViewFor.ViewModel
{
get => ViewModel;
set => ViewModel = (ShaderFileViewModel?)value;
}
public ShaderFileViewModel? ViewModel { get; set; }
}
}