WPF Listbox
'da, şu 2 fikirle karıştırıldım: ItemTemplate
ve ItemContainerStyle
Birisi bana daha fazlasını anlatabilir mi?WPF ListBox'ta ItemTemplate ve ItemContainerStyle arasındaki fark nedir?
cevap
ItemTemplate, veri öğenizin içeriğinin nasıl görüneceğini stil içindir. Veri alanlarını bağlamak, görüntü dizelerini biçimlendirmek vb. Verilerin nasıl sunulduğunu belirler.
ItemContainerStyle, veri öğesinin kabını şekillendirmek içindir. Bir liste kutusunda, bu bir ListBoxItem olur. Burada şekillendirme, seçim davranışı veya arka plan rengi gibi şeyleri etkiler. Ekranın stilini ve UX'ini belirler.
yukarıda bağlantılı ItemContainerStyle için MSDN sayfa, oldukça iyi bir örneği gösteren bazı farklılıklar vardır:
<!--Use the ItemTemplate to set a DataTemplate to define the visualization of the data objects. This DataTemplate specifies that each data object appears with the Proriity and TaskName on top of a silver ellipse.--> <ItemsControl.ItemTemplate> <DataTemplate> <DataTemplate.Resources> <Style TargetType="TextBlock"> <Setter Property="FontSize" Value="18"/> <Setter Property="HorizontalAlignment" Value="Center"/> </Style> </DataTemplate.Resources> <Grid> <Ellipse Fill="Silver"/> <StackPanel> <TextBlock Margin="3,3,3,0" Text="{Binding Path=Priority}"/> <TextBlock Margin="3,0,3,7" Text="{Binding Path=TaskName}"/> </StackPanel> </Grid> </DataTemplate> </ItemsControl.ItemTemplate> <!--Use the ItemContainerStyle property to specify the appearance of the element that contains the data. This ItemContainerStyle gives each item container a margin and a width. There is also a trigger that sets a tooltip that shows the description of the data object when the mouse hovers over the item container.--> <ItemsControl.ItemContainerStyle> <Style> <Setter Property="Control.Width" Value="100"/> <Setter Property="Control.Margin" Value="5"/> <Style.Triggers> <Trigger Property="Control.IsMouseOver" Value="True"> <Setter Property="Control.ToolTip" Value="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=Content.Description}"/> </Trigger> </Style.Triggers> </Style> </ItemsControl.ItemContainerStyle>
DataTemplate için sadece bir sarıcı ortak öğesi stil uygulanabilir böylece ItemContainerStyle farklı veri düzenleri. Ayrıca
, this answer to "DataTemplate vs ItemContainerStyle" den:Sen ItemTemplate tüm stil yapabilir ama ItemContentStyle farenin üzerinde Saydamlık kontrol VisualStates vardır/engelli/seçili vb
Eğer isterseniz Bu opaklık durumu değişikliklerini değiştirin veya örneğin bir üçgen gibi bir dikdörtgen şeklinden başka bir kapsayıcı şekli istiyorsanız, varsayılan ItemContainerStyle'ı geçersiz kılmanız gerekir.
şiddetle * * metin 'sen ItemTemplate tüm stil yapabileceği daha belirgin hale önermek ama ItemContentStyle, fare üzerinde/devre dışı/seçili durumda Opaklığı kontrol eden VisualStates'e sahiptir ve 'Bu opaklık durumu değişikliklerini değiştirmek isterseniz ya da örneğin üçgen gibi bir dikdörtgen biçiminden başka bir Konteyner şekli istiyorsanız varsayılan ItemContainerStyle.' geçersiz kılmak için sağlanan bağlantıdan kopyalandı; Son zamanlarda intihal üzerinde çatlıyorlardı, bu da bunun görülebileceği bir şeydi. – LittleBobbyTables
Bu yüzden bu bağlantıyı cevabımda ekledim. Şimdi bu siteden alınan daha net yaptık. – Jeff
Gerçekten bir düşüş var mı? Bağlantı adamı referans mı? Lütfen reddetmeden önce ENTIRE yazımı okuyun. – Jeff
- 1. Winforms, WPF ve metro arasındaki fark nedir?
- 2. wpf dosyasında ToolBarPanel ve ToolBarTray arasındaki tam fark nedir?
- 3. WPF'de WPF Komutu ve Olay arasındaki fark nedir?
- 4. Python'da {} ve [] arasındaki fark nedir?
- 5. UNIX'teki $ @ ve $ * arasındaki fark nedir?
- 6. $ arasındaki fark nedir? ve PowerShell
- 7. Fark() arasındaki fark nedir mustache.js
- 8. C# wpf - DisplayMemberPath ve ItemTemplate öğelerini ayarlayamıyor
- 9. arasındaki fark nedir?
- 10. Java arasındaki fark nedir
- 11. arasındaki fark nedir?
- 12. arasındaki fark nedir?
- 13. app.doScript ve $ .evalFile arasındaki fark nedir?
- 14. gVim ve gVim arasındaki fark nedir?
- 15. isAlpha ve isLetter arasındaki fark nedir?
- 16. Control.Enter ve Control.GotFocus olayları arasındaki fark nedir?
- 17. .got ve .got.plt bölümü arasındaki fark nedir?
- 18. AutomationProperties.AutomationID ve AutomationProperties.Name arasındaki fark nedir?
- 19. Android'de getDir ve getFilesDir arasındaki fark nedir?
- 20. R içinde `=` ve `<-` arasındaki fark nedir?
- 21. uint ve System.UInt32 arasındaki fark nedir?
- 22. PropertyChangeListener ve VetoableChangeListener arasındaki fark nedir?
- 23. XSS'de IDREF ve IDREFS arasındaki fark nedir?
- 24. Cacerts ve keystore arasındaki fark nedir?
- 25. GPLv2 ve GPLv3 arasındaki fark nedir?
- 26. VarIsEmpty ve VarIsEmptyParam işlevleri arasındaki fark nedir
- 27. ActiveSupport'ta mattr_accessor ve cattr_accessor arasındaki fark nedir?
- 28. Hashtable ve Dictionary arasındaki fark nedir?
- 29. RoutedCommand ve RoutedUICommand arasındaki fark nedir?
- 30. MySQL'deki boolean ve bool arasındaki fark nedir?
Muhtemelen ilgili: http://stackoverflow.com/questions/5978358/datatemplate-vs-itemcontainerstyle – LittleBobbyTables