Нарисование на холсте не сохранение правильно WPFC#

Место общения программистов C#
Ответить
Anonymous
 Нарисование на холсте не сохранение правильно WPF

Сообщение Anonymous »

У меня есть изображение внутри холста, пользователь может щелкнуть в изображении и появилась зеленая точка, где пользователь щелкнул. /> xaml: < /p>

Код: Выделить всё






< /code>
trankellipse (метод, который я использую для рисования эллипа, корректировкаpublic void DrawEllipse()
{
// Adjust To Canvas
(double x, double y) = AdjustToCanvas(Mouse.GetPosition(ImageCanvas));

// Center Ellipse
x -= EllipseClick.Width / 2;
y -= EllipseClick.Height / 2;

Canvas.SetLeft(EllipseClick, x);
Canvas.SetTop(EllipseClick, y);
}
< /code>
onmouseleftbuttondown (метод щелчка, чтобы нарисовать эллипс) < /p>
public void OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
DrawEllipse();

Point point = Mouse.GetPosition(SelectedPartImage);

if (!(point.ConvertWPFPointToImagePoint(
SelectedPartImageSource.PixelWidth,
SelectedPartImageSource.PixelHeight,
SelectedPartImage.ActualWidth,
SelectedPartImage.ActualHeight))
{
return;
}

// CheckAlpha checks that the clicked point is inside the image and not outside of it.
SelectPositionSuccess = CheckAlpha((int)point.X, (int)point.Y);

EllipseClick.Visibility = SelectPositionSuccess ? Visibility.Visible : Visibility.Hidden;

if (SelectPositionSuccess)
{
//Saving the Canvas
RenderTargetBitmap rtb = new RenderTargetBitmap(
(int)SelectedPartImageSource.Width,
(int)SelectedPartImageSource.Height,
96d,
96d,
System.Windows.Media.PixelFormats.Default);

rtb.Render(ImageCanvas);

//endcode as PNG
PngBitmapEncoder pngEncoder = new PngBitmapEncoder();
pngEncoder.Frames.Add(BitmapFrame.Create(rtb));

//save to memory stream
System.IO.MemoryStream ms = new System.IO.MemoryStream();
pngEncoder.Save(ms);
ms.Close();

var bitmap = new BitmapImage();
bitmap.BeginInit();
bitmap.StreamSource = ms;
bitmap.CacheOption = BitmapCacheOption.OnLoad;
bitmap.EndInit();

System.IO.File.WriteAllBytes("test.png", ms.ToArray());
}
}
Любые идеи, как я могу исправить это поведение?
Заранее!

Подробнее здесь: https://stackoverflow.com/questions/504 ... rectly-wpf
Ответить

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

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

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

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

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