Почему я не могу загрузить скриншот из активов?C#

Место общения программистов C#
Anonymous
Почему я не могу загрузить скриншот из активов?

Сообщение Anonymous »

У меня есть проблема, когда я хочу получить доступ к снимку экрана, который я сохраняю в активах. Экраншот сохраняется в правильной папке, но код не может получить к нему доступ, несмотря на правильные пути. Я бы охватил любую помощь! Я пробовал много разных путей, но ошибка в том, что по этому адресу, который правильный, изображение нет, но оно так. < /P>
using Avalonia;
using Avalonia.Controls;
using Avalonia.Media.Imaging;
using System;
using System.IO;
using The_script_project.ViewModels;

namespace The_script_project.Views
{
public partial class MainWindow : Window
{
private readonly MainWindowViewModel _viewModel;

public static void SaveScreenshot(Window window, MainWindowViewModel vm)
{
var pixelSize = new PixelSize((int)window.Width, (int)window.Height);
var size = new Size(window.Width, window.Height);
var dpiVector = new Vector(96, 96);

using RenderTargetBitmap bitmap = new(pixelSize, dpiVector);
window.Measure(size);
window.Arrange(new Rect(size));
bitmap.Render(window);
int index = vm.Gumbi.Count;
string fileName = $"screenshot{index}.png";
var folder = Path.Combine(Directory.GetParent(AppContext.BaseDirectory)!.Parent!.Parent!.Parent!.FullName, "Assets");

var fullPath = Path.Combine(folder, fileName);

bitmap.Save(fullPath);
}

public MainWindow(MainWindowViewModel viewModel)
{
InitializeComponent();
_viewModel = viewModel;
DataContext = viewModel;
}

private void OnSave(object? sender, Avalonia.Interactivity.RoutedEventArgs e)
{
if (this.DataContext is MainWindowViewModel vm)
{
int index = vm.Gumbi.Count;
string fileName = $"screenshot{index}.png";

var folder = Path.Combine(Directory.GetParent(AppContext.BaseDirectory)!.Parent!.Parent!.Parent!.FullName, "Assets");
Directory.CreateDirectory(folder);
var fullPath = Path.Combine(folder, fileName);

SaveScreenshot(this, vm);

vm.Gumbi.Insert(0, new MainWindowViewModel.Gumb
{
Ime = "Nov gumb",
IkonaPot = fullPath
});
}
}
}
}
< /code>
public class Gumb
{
public string? Ime { get; set; }
public required string IkonaPot { get; set; }
public Bitmap Ikona
{
get
{
return ToBitmap(IkonaPot);
}
}


Подробнее здесь: https://stackoverflow.com/questions/796 ... rom-assets

Вернуться в «C#»