2015-06-11 2 views
0

Пожалуйста, смотрите ниже код, который добавляет изображения из локальной папки в ListView:Как добавить флажок в изображение в ListView?

for (int i = 0; i < num_of_slides; i++) //populate the thumbnail list 
{ 
    var fileName = @dir + (i+1) + ".png"; 
    var bitmap = new BitmapImage(new Uri(fileName)); 
    Image image = new Image() { Source = bitmap }; 
    image.Width = 140; 

    CheckBox checkbox = new CheckBox(); 

    Thumbnails.Items.Add(image); 

    //Thumbnails.Items.GetItemAt(i); here I want to somehow access current image and add checkbox in corner within that image 
} 

Как добавить флажок в пределах каждого изображения, но не следует рассматривать как элемент в ListView, а чем субэлемент каждого изображения?

+0

Isnt ListView.CheckBoxes, что вам нужно? https://msdn.microsoft.com/en-us/library/system.windows.forms.listview.checkboxes(v=vs.110).aspx –

+0

Я считаю, что это так. Однако мой ListView «Thumbnails» создан в XAML и, по-видимому, не имеет свойства CheckBoxes. Или, может быть, я что-то упустил? – user1394252

ответ

1

Поскольку Image не поддерживает контент, вам необходимо обернуть как Image, так и ComboBox в каком-либо контейнере, например. Grid.

// set checkbox alignment 
checkbox.HorizontalAlignment = HorizontalAlignment.Left; 
checkbox.VerticalAlignment = VerticalAlignment.Bottom; 
var grid = new Grid(); 
grid.Children.Add(image); 
grid.Children.Add(checkbox); 
+0

Спасибо, что полностью сработало. Единственная проблема заключается в том, что флажок находится по всему изображению, а не визуально, но его «поле» охватывает весь образ, и он не позволит мне щелкнуть изображение (флажок установлен там, где я нажимаю на изображение). Как это решить? – user1394252

0

Как об этом sample

<DataTemplate x:Key="FirstCell"> 
    <StackPanel Orientation="Horizontal"> 
    <CheckBox IsChecked="{Binding Path=IsSelected, 
     RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListViewItem}}}"/> 
    </StackPanel> 
</DataTemplate> 

<GridViewColumn CellTemplate="{StaticResource FirstCell}" Width="30"/> 
Смежные вопросы