Доступ запрещен в любом каталоге. В WPF
Программа ниже делает снимок главного окна, нажав клавишу "p". В коде нет подчеркнутых красных ошибок.
когда программа запускается и я нажимаю "р", она показывает ошибку на изображении:
изображение — imgbb.com[^]
По-гречески это означает, что доступ к пути запрещен...
какой бы путь я ни выбрал здесь:
Uri path = новый Uri(@"c:\screenshot.png");
он всегда показывает одну и ту же ошибку.
Есть какие-нибудь идеи, что может быть причиной этого или чего не хватает в коде?
Заранее спасибо
Что я уже пробовал:
using System; using System.IO; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace WpfApp2 { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void Button_Click(object sender, RoutedEventArgs e) { if (linevertical.Visibility == Visibility.Hidden) { linevertical.Visibility = Visibility.Visible; } else { linevertical.Visibility = Visibility.Hidden; } } private void Button_Click_1(object sender, RoutedEventArgs e) { if (lineo.Visibility == Visibility.Hidden) { lineo.Visibility = Visibility.Visible; } else { lineo.Visibility = Visibility.Hidden; } } private void Mainwindow_KeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.A) { lineo.Visibility = Visibility.Hidden; linevertical.Visibility = Visibility.Hidden; } if (e.Key == Key.S) { lineo.Visibility = Visibility.Visible; linevertical.Visibility = Visibility.Visible; } if (e.Key == Key.P) { //Set scrollviewer's Content property as UI element to capture full content UIElement element = mainwindow.Content as UIElement; Uri path = new Uri(@"c:\screenshot.png"); CaptureScreen(element, path); } } public void CaptureScreen(UIElement source, Uri destination) { try { double Height, renderHeight, Width, renderWidth; Height = renderHeight = source.RenderSize.Height; Width = renderWidth = source.RenderSize.Width; //Specification for target bitmap like width/height pixel etc. RenderTargetBitmap renderTarget = new RenderTargetBitmap((int)renderWidth, (int)renderHeight, 96, 96, PixelFormats.Pbgra32); //creates Visual Brush of UIElement VisualBrush visualBrush = new VisualBrush(source); DrawingVisual drawingVisual = new DrawingVisual(); using (DrawingContext drawingContext = drawingVisual.RenderOpen()) { //draws image of element drawingContext.DrawRectangle(visualBrush, null, new Rect(new Point(0, 0), new Point(Width, Height))); } //renders image renderTarget.Render(drawingVisual); //PNG encoder for creating PNG file PngBitmapEncoder encoder = new PngBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create(renderTarget)); using (FileStream stream = new FileStream(destination.LocalPath, FileMode.Create, FileAccess.Write)) { encoder.Save(stream); } } catch (Exception e) { MessageBox.Show(e.ToString()); } } } }