Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2012, 22:28   #1
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию Не полное заполнение картинок

Здравствуйте Уважаемые программисты. Вообщем проблема следующая, как видно по xaml коду забиндина картинка к CImageUri::ImagePath.
Далее я считываю информацию с rss ленты а точнее ссылку на картинку и сохраняю в ObservableCollection. Ну и собственно ObservableCollection цепляю к ListBox.ItemsSource.
Проблема в том что иногда картинки загружаются не все, а иногда все и не могу понять изза чего это происходит.

http://imageshack.us/f/29/12345ih.jpg/ // Вариант с не полной загрузкой картинок

Код:
  bool FillingSliderCells()
  {
   Thread _Thread = new Thread(new ThreadStart(delegate()
    {
     if (!this.GetWebResponse("http://my-host/rss"))
     {
      XmlTextReader _XmlTextReader = new XmlTextReader("http://my-host/rss");
      _XmlTextReader.WhitespaceHandling = WhitespaceHandling.None;

      List<IUserClass.CImageUri> _ImageUri = new List<IUserClass.CImageUri>();

      while (_XmlTextReader.Read())
      {
       if (_XmlTextReader.IsStartElement())
       {
        switch (_XmlTextReader.Name)
        {
         case "enclosure":
          {
           if (_XmlTextReader.HasAttributes)
           {
            pImageCollection.Add(new IUserClass.CImageUri()
            {
             ImagePath = new Uri(_XmlTextReader[0]) //_XmlTextReader[0] = Сссылка на картинку
            });
           }
          }
          break;
        }
       }
      }

      this.Dispatcher.BeginInvoke(new Action(() =>
       {
        ISList.ItemsSource = pImageCollection;
       }));
     }
    }));

   _Thread.SetApartmentState(ApartmentState.STA);

   _Thread.Start();

   return true;
  }
Код:
 <StackPanel x:Name="IStack" Grid.Column="1" Grid.Row="1" Orientation="Horizontal">
   <ListBox x:Name="ISList" ScrollViewer.HorizontalScrollBarVisibility="Hidden"  ScrollViewer.VerticalScrollBarVisibility="Disabled" BorderBrush="{x:Null}" Width="392.603" Style="{DynamicResource ISListBoxStyle}" SelectionChanged="ISList_SelectionChanged" Cursor="Hand" Background="{x:Null}" HorizontalAlignment="Center" BorderThickness="2,1,1,2" Height="72">			
				<ListBox.Resources>   
  			<Style x:Key="ISListBoxStyle" TargetType="{x:Type ListBox}">
      <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
      <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/>			
  				<Setter Property="ScrollViewer.CanContentScroll" Value="true"/>
  				<Setter Property="ScrollViewer.PanningMode" Value="Both"/>
  				<Setter Property="Stylus.IsFlicksEnabled" Value="False"/>
  				<Setter Property="VerticalContentAlignment" Value="Center"/>
      <Setter Property="ItemTemplate">
       <Setter.Value>
        <DataTemplate>
         <Border Name="FrameIndex" Background="Black" BorderThickness="2" BorderBrush="#FF1B223F" Margin="0.90, 2.1, 2.1, 2.1" Width="92" Height="64">
          <Image Source="{Binding Path=ImagePath}" Stretch="Fill"/>
         </Border>
         
         <DataTemplate.Triggers>
          <Trigger Property="IsMouseOver" Value="True">
           <Setter Property="BorderBrush" TargetName="FrameIndex">
            <Setter.Value>
             <LinearGradientBrush StartPoint="1,0" EndPoint="1,1">
              <GradientStop Color="#FF1B223F" Offset="0" />
              <GradientStop Color="#FF337FEA" Offset="0.6" />
              <GradientStop Color="#FF1B223F" Offset="1" />
             </LinearGradientBrush>
            </Setter.Value>
           </Setter>
          </Trigger>
          
         </DataTemplate.Triggers>
        </DataTemplate>
       </Setter.Value>
      </Setter>
     </Style>
  		</ListBox.Resources>

  		<ListBox.ItemsPanel>
  			<ItemsPanelTemplate>
  				<WrapPanel IsItemsHost="True" />
  			</ItemsPanelTemplate>
  		</ListBox.ItemsPanel>  
   </ListBox>		
  </StackPanel>
coNsept вне форума Ответить с цитированием
Старый 30.11.2012, 01:35   #2
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Если указать ссылку на картинку явно а не _XmlTextReader[0] который получает атрибут узла (ссылки на картинки)
Все воркает хорошо сколько раз бы я не перезагружал программу, все картинки отображаются.
coNsept вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Полное заполнение таблицы в общем доступе/, но без права повторного редактирования ячеек после сохранения Print Microsoft Office Excel 3 01.10.2011 13:20
Полное окно Максим139 Помощь студентам 4 21.03.2011 23:27
...ПОЛНОЕ удаление программ.... maxvip Операционные системы общие вопросы 17 15.03.2010 17:45
Полное форматирование харда. CepnyX Операционные системы общие вопросы 8 06.07.2008 23:13
Полное удаление строки Albenous Общие вопросы Delphi 2 15.01.2007 21:54