-
Data: 2013-08-13 11:51:46
Temat: [C#] Problem z Drag and drop w WPF
Od: Paweł <g...@o...pl> szukaj wiadomości tego autora
[ pokaż wszystkie 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
Następne wpisy z tego wątku
- 13.08.13 17:40 Jacek
- 13.08.13 17:52 Ministerstwo Propagandy
Najnowsze wątki z tej grupy
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
Najnowsze wątki
- 2025-06-27 Warszawa => Account Manager - Usługi rekrutacyjne <=
- 2025-06-27 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo
- 2025-06-27 Warszawa => Senior SAP Consultant - PP area <=
- 2025-06-27 Warszawa => Spedytor Międzynarodowy <=
- 2025-06-27 Zasilanie elektryków w Polsce
- 2025-06-27 Łódź => Programista Mainframe (z/OS, Assembler) <=
- 2025-06-27 Łódź => Mainframe (z/OS, Assembler) Developer <=
- 2025-06-27 Wrocław => Senior Android Developer (Java) <=
- 2025-06-27 Warszawa => IT Director <=
- 2025-06-27 Wrocław => Controlling systems Consultant <=
- 2025-06-27 Warszawa => Software Engineer .Net <=
- 2025-06-27 BMW
- 2025-06-26 Re: Recykling akumulatorów
- 2025-06-26 Re: Recykling akumulatorów
- 2025-06-26 Inwentaryzacja budynku