2015-06-11 93 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

心不是ListView.CheckBoxes你需要什麼? https://msdn.microsoft.com/en-us/library/system.windows.forms.listview.checkboxes(v=vs.110).aspx –

+0

我相信是的。但是,我的ListView「縮略圖」是在XAML中創建的,顯然沒有CheckBoxes屬性。或者我錯過了什麼? – user1394252

回答

1

由於Image不支持內容,您需要在某種容器中包裝ImageComboBox,例如。 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"/> 
相關問題