2015-01-24 2 views
3

Я не графический дизайнер, но я хочу красивое приложение. Я искал в Интернете для WPF Темы, и я обнаружил, что это:
https://visualstudiogallery.msdn.microsoft.com/30e8b37d-01a0-4749-abcb-a5d7631e7646
Темы отлично работают с кнопками и текстовыми полями и многими элементами управления, но не с ListView.
Это как мой пример ListView выглядит без Тема:
No Theme
И вот как это выглядит с Тематической ShinyBlue (другие темы выглядят одинаково):
With Theme
Это не имеет значения, какую тему я использую (я скачал много). Всегда есть проблема, что ListView с Theme не показывает элементы. Он просто показывает несколько толстых линий вместо предметов.
Вот код:Почему не работает WPF ListView Theme?

<Window 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      mc:Ignorable="d" x:Class="SahaWpfTheme20131.TestWindow1" 
      Title="Test Window" Width="250" Height="200" 
      > 
      <Grid> 
       <ListView x:Name="ListView1" HorizontalAlignment="Left" 
         VerticalAlignment="Top" Width="200" Height="150"> 
        <ListViewItem Content="Coffee"/> 
        <ListViewItem Content="Tea"/> 
        <ListViewItem Content="Orange Juice"/> 
        <ListViewItem Content="Milk"/> 
        <ListViewItem Content="Iced Tea"/> 
        <ListViewItem Content="Mango Shake"/> 
       </ListView> 
      </Grid> 
     </Window> 

Я делаю что-то неправильно или вы много Темы просто не будет работать с ListView? Я смущен, почему это не работает.

Я использовал образец ListView отсюда: http://www.c-sharpcorner.com/uploadfile/mahesh/listview-in-wpf/

+0

Привет, Ive просто попробовал пару тем и посмотрел, что вы имеете в виду, похоже, не работает. Пробовал csetting ItemTemplate, но ничего хорошего. ListBox, похоже, работает с темой, хотя вы пробовали это? – SWilko

ответ

2

Когда я создаю ListView с колоннами и ItemsSource, он работает (но цвета перепутались, вероятно, другой вопрос):

<ListView x:Name="ListView1" HorizontalAlignment="Left" 
        VerticalAlignment="Top" Width="200" Height="150"> 
     <ListView.View> 
      <GridView> 
       <GridView.Columns> 
        <GridViewColumn DisplayMemberBinding="{Binding A}" /> 
        <GridViewColumn DisplayMemberBinding="{Binding B}" /> 
       </GridView.Columns> 
      </GridView> 
     </ListView.View> 
    </ListView> 

а код-за (конечно, это не правильный способ сделать это, но это самый короткий):

 ListView1.ItemsSource = new[] 
     { 
      new { A = "qqq", B = "rrr" }, 
      new { A = "qqqq", B = "rrr" } 
     }; 

enter image description here

Я также получил ваш код работать, но для этого я изменил ListViewItem шаблон в BureauBlack.xaml (тема, которая используется):

<GridViewRowPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Margin="0,2,0,2" VerticalAlignment="Stretch" /> 

к

<ContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Margin="0,2,0,2" VerticalAlignment="Stretch" /> 

и теперь отображается содержимое в списке из вашего кода. Но для того, что вы пытаетесь сделать, как это предлагается в комментарии, вы, вероятно, хотите получить ListBox, а не ListView.

+0

Спасибо за вашу работу и ваш ответ. Согласно вашему предложению, я изменил GridViewRowPresenter на ContentPresenter, и теперь элементы отображаются правильно. Я использовал вышеприведенный образец, чтобы продемонстрировать проблему с минимальным количеством кода. В реальной жизни мой код ListView более сложный, но показывая, что затруднило бы понимание проблемы. У вас есть хороший источник, где я могу узнать о GridViewRowPresenter, ContentPresenter и возможных подобных проблемах? – Edgar

+0

Извините, у меня нет источника, и я не очень хорошо это понимаю. Проблема была в основном в том, что «GridViewRowPresenter», который используется темой, работает с «GridView», а ваш оригинальный «ListView» не использует «GridView». – svinja

Смежные вопросы