Почему я не могу загрузить скриншот из активов?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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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