speichern WPF InkCanvas, um ein JPG - Bild immer beschnitten

Ich habe eine WPF-InkCanvas-control bin ich über eine Signatur erfassen in meiner Anwendung. Die Steuerung sieht wie folgt aus - es ist 700x300

alt-text http://img156.imageshack.us/img156/7885/inkcanvas.jpg

Allerdings, wenn ich speichern Sie es als JPG-Datei, wird das resultierende Bild sieht aus wie dieses, auch 700x300

alt-text http://img210.imageshack.us/img210/5668/saved.jpg

Den code, den ich verwende, um zu sparen

            sigPath = System.IO.Path.GetTempFileName();

            MemoryStream ms = new MemoryStream();
            FileStream fs = new FileStream(sigPath, FileMode.Create);

            RenderTargetBitmap rtb = new RenderTargetBitmap((int)inkSig.Width, (int)inkSig.Height, 96d, 96d, PixelFormats.Default);
            rtb.Render(inkSig);
            JpegBitmapEncoder encoder = new JpegBitmapEncoder();
            encoder.Frames.Add(BitmapFrame.Create(rtb));

            encoder.Save(fs);
            fs.Close();

Dies ist der XAML-ich bin mit:

<Window x:Class="Consent.Client.SigPanel"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Background="Transparent" Topmost="True" AllowsTransparency="True"
Title="SigPanel" Left="0" Top="0" Height="1024" Width="768" WindowStyle ="None" ShowInTaskbar="False" ResizeMode="NoResize" WindowStartupLocation="CenterScreen" >

<Border BorderThickness="1" BorderBrush="Black" Background='#FFFFFFFF' x:Name='DocumentRoot' Width='750' Height='400' CornerRadius='10'>
    <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
        <TextBlock Name="txtLabel" FontSize="24" HorizontalAlignment="Center" >Label</TextBlock>
        <InkCanvas Opacity="1" Background="Beige" Name="inkSig" Width="700" Height="300" />

        <StackPanel HorizontalAlignment="Center" Orientation="Horizontal">
            <Button FontSize="24" Margin="10" Width="150" Name="btnSave" Click="btnSave_Click">Save</Button>
            <Button FontSize="24" Margin="10" Width="150" Name="btnCancel" Click="btnCancel_Click">Cancel</Button>
            <Button FontSize="24" Margin="10" Width="150" Name="btnClear" Click="btnClear_Click">Clear</Button>
        </StackPanel>
    </StackPanel>
</Border>

In der Vergangenheit klappte dies perfekt. Ich kann nicht herausfinden, was sich geändert hat, was das Bild zu verschieben, wenn es gespeichert wird.

Ich machte eine kleine Probe für dieses und verwendet Ihre genauen code zu speichern .jpg. Ich machte eine Reihe von Bildern und nicht einmal konnte ich das problem reproduzieren! Es muss woanders sein - können Sie Ihre XAML und alles andere, was relevant sein könnten?

InformationsquelleAutor Jason | 2009-08-05

Schreibe einen Kommentar