eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming[C#] Problem z Drag and drop w WPF[C#] Problem z Drag and drop w WPF
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
    .pl!news.nask.org.pl!goblin3!goblin2!goblin.stu.neva.ru!feeder1.cambriumusenet.
    nl!feed.tweaknews.nl!209.197.12.246.MISMATCH!nx02.iad01.newshosting.com!newshos
    ting.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-b-01.news.n
    eostrada.pl!news.neostrada.pl.POSTED!not-for-mail
    Date: Tue, 13 Aug 2013 11:51:46 +0200
    From: Paweł <g...@o...pl>
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.15)
    Gecko/20110303 Thunderbird/3.1.9
    MIME-Version: 1.0
    Newsgroups: pl.comp.programming
    Subject: [C#] Problem z Drag and drop w WPF
    Content-Type: text/plain; charset=ISO-8859-2; format=flowed
    Content-Transfer-Encoding: 8bit
    Lines: 105
    Message-ID: <520a0145$0$1457$65785112@news.neostrada.pl>
    Organization: Telekomunikacja Polska
    NNTP-Posting-Host: 46.170.157.70
    X-Trace: 1376387397 unt-rea-a-01.news.neostrada.pl 1457 46.170.157.70:54730
    X-Complaints-To: a...@n...neostrada.pl
    Xref: news-archive.icm.edu.pl pl.comp.programming:204350
    [ ukryj nagłówki ]

    Czesc

    Mam problem z prawidłowym użyciem mechanizmu Drag and Drop w swoim
    programie. Otóż w kodzie xaml mam:

    <ListView Grid.Column="0" Grid.Row="1" Height="200" Margin="2"
    Name="lvListaWczytanychPlikowFotek" ScrollViewer.CanContentScroll="True"
    ScrollViewer.VerticalScrollBarVisibility="Auto">
    <ListView.ItemTemplate>
    <DataTemplate>
    <StackPanel Orientation="Vertical">
    <Border BorderBrush="Bisque"
    BorderThickness="2" CornerRadius="5" Margin="5">
    <Image Margin="5"
    Source="{Binding .Foto}" Height="170" Width="150"
    MouseLeftButtonDown="DragImage" />
    </Border>
    <StackPanel>
    <TextBlock
    Name="tbNazwaPliku" Text="{Binding .NazwaPliku}" />
    </StackPanel>
    </StackPanel>
    </DataTemplate>
    </ListView.ItemTemplate>
    </ListView>

    [...]

    <StackPanel Grid.Column="1" Grid.Row="0" Grid.RowSpan="2" Margin="5"
    Background="Transparent">
    <TextBlock>Fotografia 1:</TextBlock>
    <Border BorderThickness="2" Margin="2" BorderBrush="Beige">
    <Image MinWidth="200" MinHeight="200"
    AllowDrop="True" Drop="DropImageFoto" Name="image1foto"
    Stretch="UniformToFill"></Image>
    </Border>
    </StackPanel>

    W kodzie zaś, mam klasę:

    public class Fotografia
    {
    public string NazwaPliku { get; set; }
    public string SciezkaDoPliku { get; set; }
    public ImageSource Foto { get; set; }

    public Fotografia()
    {

    }

    public Fotografia(string _nazwaPliku, string
    _sciezkaDoPliku, ImageSource _foto)
    {
    this.NazwaPliku = _nazwaPliku;
    this.SciezkaDoPliku = _sciezkaDoPliku;
    this.Foto = _foto;
    }
    }
    i obiekt:

    public ObservableCollection<Fotografia> listaWczytaneFotki = new
    ObservableCollection<Fotografia>();

    do którego są pobierane pliki

    listaWczytaneFotki.Add(new Fotografia{NazwaPliku =
    System.IO.Path.GetFileName(file), SciezkaDoPliku =
    System.IO.Path.GetFullPath(file),Foto = (new
    ImageSourceConverter()).ConvertFromString(file) as ImageSource });

    Teraz chcę móc przeciągać obrazek z kontrolki ListView
    (lvListaWczytanychPlikowFotek) na kontrolkę Image(image1foto), tak aby
    on się w niej wyświetlił:

    private void DragImage(object sender, MouseButtonEventArgs e)
    {

    Fotografia current =
    (Fotografia)lvListaWczytanychPlikowFotek.Items.Curre
    ntItem;
    ImageSource data = current.Foto;
    DragDrop.DoDragDrop(lvListaWczytanychPlikowFotek, data,
    DragDropEffects.Copy);
    e.Handled = true;
    }

    private void DropImageFoto(object sender, DragEventArgs e)
    {

    Fotografia brFoto = e.Data.GetData(typeof(Fotografia)) as
    Fotografia;
    Image imageControl = new Image() { Width =
    image1foto.Width, Height = image1foto.Height, Source = brFoto.Foto };
    imageControl.Stretch = Stretch.UniformToFill;
    this.image1foto.Source = imageControl.Source;
    e.Handled = true;

    }

    Na chwilę obecną obrazki w ListView się ładnie wyświetlają, w momencie
    rozpoczęcia przeciągania wybranej fotografii kursor myszy zmienia
    kształt ale nie wykonuje się fragment kodu związany z metodą
    DropImageFoto. Co pominąłem, że ten kod nie działa prawidłowo ?

    Z góry dzięki za podpowiedź. Pozdrawiam

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: