Структура выделяет общий размер всех элементов в нем.
объединение А только выделяет столько памяти, сколько ее крупнейший участник требует.
Ага! Проблема заключается в TextBlock txtLabel , который находится непосредственно над InkCanvas. Когда вы удалите эту черную линию, она исчезнет.
Что касается того, почему это происходит, я еще не совсем уверен.
Мой класс сохранил изображение
using System;
using System.IO;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Media.Imaging;
public void ExportToJpeg(String path, InkCanvas surface)
{
double
x1 = surface.Margin.Left,
x2 = surface.Margin.Top,
x3 = surface.Margin.Right,
x4 = surface.Margin.Bottom;
if (path == null) return;
surface.Margin = new Thickness(0, 0, 0, 0);
Size size = new Size(surface.Width, surface.Height);
surface.Measure(size);
surface.Arrange(new Rect(size));
RenderTargetBitmap renderBitmap =
new RenderTargetBitmap(
(int)size.Width,
(int)size.Height,
96,
96,
PixelFormats.Default);
renderBitmap.Render(surface);
using (FileStream fs = File.Open(path, FileMode.Create))
{
JpegBitmapEncoder encoder = new JpegBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(renderBitmap));
encoder.Save(fs);
}
surface.Margin = new Thickness(x1, x2, x3, x4);
}
and Поверхность. Маржа = новая Толщина(55,40,96,5); http://img519.imageshack.us/img519/7499/mynewimage.png
Джейсон, я решил эту проблему.
Извини за мой английский. Я русский.
Вам нужно установить свойство inkCanvas.Margin
на 0,0,0
.
с:
surface.Margin = new Thickness(0, 0, 0, 0);
после сохранения установленного залога на вашей позиции.
пример: http://img189.imageshack.us/img189/7499/mynewimage.png