Toolkit.UI.Controls.Avalonia

This commit is contained in:
TheXamlGuy
2024-04-13 11:41:33 +01:00
parent 62a7e94e19
commit 862e7b2e34
97 changed files with 8558 additions and 0 deletions
@@ -0,0 +1,44 @@
using Avalonia;
using Avalonia.Controls;
using Avalonia.Media;
using Avalonia.Media.Imaging;
using Avalonia.Platform;
using Avalonia.Styling;
namespace Toolkit.UI.Controls.Avalonia;
public class FastRendererBackground :
Image, IDisposable
{
private const int ImageWidth = 100;
private const int ImageHeight = 100;
private readonly WriteableBitmap bitmap = new(new PixelSize(ImageWidth, ImageHeight),
new Vector(96, 96), PixelFormat.Bgra8888);
private readonly FastNoiseBackgroundRenderer renderer = new();
public FastRendererBackground()
{
Source = bitmap;
Stretch = Stretch.UniformToFill;
}
public override void EndInit()
{
base.EndInit();
if (Application.Current?.ActualThemeVariant is ThemeVariant theme)
{
renderer.UpdateValues((Color)Application.Current.FindResource("SystemAccentColorLight3"),
(Color)Application.Current.FindResource("SystemAccentColorDark3"), theme);
}
renderer.Render(bitmap);
}
public void Dispose()
{
GC.SuppressFinalize(this);
bitmap.Dispose();
}
}