0

デスクトップから画像 (人物画像) をドラッグして、wpf アプリケーションにドロップしたい

リソースはありますか?

4

1 に答える 1

3

XAML:

<Window x:Class="_13378018.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525" AllowDrop="True" Drop="OnDrop">
    <Grid>
        <Image x:Name="imageViewer"/>
    </Grid>
</Window>

コードビハインド:

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        DataContext = this;
    }

    private BitmapImage LoadImageFromFile(string filename)
    {
        using (var fs = File.OpenRead(filename))
        {
            var img = new BitmapImage();
            img.BeginInit();
            img.CacheOption = BitmapCacheOption.OnLoad;
            // Downscaling to keep the memory footprint low
            img.DecodePixelWidth = (int)SystemParameters.PrimaryScreenWidth;
            img.StreamSource = fs;
            img.EndInit();
            return img;
        }
    }

    private void OnDrop(object sender, DragEventArgs e)
    {
        var data = e.Data as DataObject;
        if (data.ContainsFileDropList())
        {
            var files = data.GetFileDropList();
            imageViewer.Source = LoadImageFromFile(files[0]);
        }
    }
}
于 2012-11-14T18:52:43.897 に答える