1.5.7965
Конец декабря — RC2
C# Scripting — в BlazorWindows добавлен NoActivate
Добавлено очень полезное свойство NoActivate. Если его включить, окно будет реагировать на клики мышью, но не будет перехватывать фокус пользователя.
Это значит, что вы можете сделать оверлей с набором элементов управления, через которые пользователь сможет быстро включать и отключать функции вашего бота, при этом окно игры останется активным.
/// <summary>
/// Gets or sets a value indicating whether the window should NOT be activated when clicked
/// </summary>
bool NoActivate { get; set; }
C# Scripting — в BlazorWindows добавлен ComplexFileProvider
В IBlazorWindow добавлены одно новое свойство и один метод. Оба можно использовать для подключения собственных провайдеров файловых данных.
Вы можете выбрать любой удобный вариант: добавить свой FileProvider либо через RegisterFileProvider, либо через AdditionalFileProvider. После этого любые файлы, на которые вы будете ссылаться в своем Blazor-коде, станут доступны через этот провайдер.
Это могут быть стили, генерируемые во время выполнения, изображения, видео или любые другие данные, которые нужны для создания действительно динамичного пользовательского интерфейса.
Пока что я рекомендую использовать встроенные варианты:
ComplexFileProvider— позволяет объединять несколькоFileProviderв один; разрешение файлов происходит в порядке их добавленияInMemoryFileProvider— позволяет хранить данные файлов в памяти; для лучшей производительности файлы кэшируютсяInMemoryFileInfo— позволяет создать одну ссылку на файл в памяти; данные загружаются сразу при созданииFileInfoLazyInMemoryFileInfo— позволяет создать ленивую ссылку на файл; данные загружаются только при обращении
С их помощью можно очень легко добавлять новый контент на ваши страницы.
/// <summary>
/// Gets or sets additional file provider which will be used by Blazor
/// </summary>
IFileProvider AdditionalFileProvider { get; set; }
/// <summary>
/// Adds additional file provider which will be used by Blazor. Added to the end of the list.
/// Removed on disposal
/// </summary>
IDisposable RegisterFileProvider(IFileProvider fileProvider);
Пример кода, который загружает файл с диска и делает его доступным для использования в стилях или HTML:
var fileProvider = new InMemoryFileProvider();
fileProvider.AddOrUpdate(new InMemoryFileInfo("hello.png", File.ReadAllBytes(@"D:\hello.png")));
Разумеется, отображаемые данные можно генерировать и во время выполнения.
Исправления и улучшения
- [Scripting] Исправлена проблема, из-за которой
OpacityуBlazorWindowв некоторых случаях применялся некорректно