Avatar
Martin Svoboda:

Čaute,
vo WinForm mi funguje tento kód pre urobenie screeshotu

private void snapshot_Click(object sender, RoutedEventArgs e)
    {
        if (pictureBox1.Image != null)
        {
            //Save First
            Bitmap varBmp = new Bitmap(pictureBox1.Image);
            Bitmap newBitmap = new Bitmap(varBmp);
            varBmp.Save(@"C:\a.png", ImageFormat.Png);
            //Now Dispose to free the memory
            varBmp.Dispose();
            varBmp = null;
        }
        else
        { MessageBox.Show("null exception"); }
    }

aký je ekvivalent zápisu vo WPF?

skúšal som to takto XAML:

<UserControl
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
 <Grid>
    <Image x:Name="frameholder" HorizontalAlignment="Left" Height="415" Margin="26,20,0,0" VerticalAlignment="Top" Width="802"/>
    <Button x:Name="snapshot" Content="snapshot" HorizontalAlignment="Left" Margin="907,159,0,0" VerticalAlignment="Top" Width="75" Click="snapshot_Click" Style="{StaticResource AccentedSquareButtonStyle}" Height="29"/>
    <TextBox x:Name="TextBox_SaveTo" HorizontalAlignment="Left" Height="23" Margin="862,193,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/>
</Grid>

a metóda:

private void snapshot_Click(object sender, RoutedEventArgs e)
    {
        if (frameholder.Image != null)
        {
            //Save First
            Bitmap varBmp = new Bitmap(frameholder.Image);
            Bitmap newBitmap = new Bitmap(varBmp);
            varBmp.Save(@"C:\a.png", ImageFormat.Png);
            //Now Dispose to free the memory
            varBmp.Dispose();
            varBmp = null;
        }
        else
        { MessageBox.Show("null exception"); }
    }

ale frameholder nemá property Image ... robil to už niekto?
Dik.

Editováno 12. dubna 9:28
 
Odpovědět 12. dubna 9:27
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 1 zpráv z 1.