У меня есть проблема, когда я хочу получить доступ к снимку экрана, который я сохраняю в активах. Экраншот сохраняется в правильной папке, но код не может получить к нему доступ, несмотря на правильные пути. Я бы охватил любую помощь! Я пробовал много разных путей, но ошибка в том, что по этому адресу, который правильный, изображение нет, но оно так. < /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#
Место общения программистов C#
-
Anonymous
1751639923
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);
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79690019/why-i-cant-load-screenshot-from-assets[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия