Пример #1
0
 public void ScrollToLastItem(ListView lv)
 {
     lv.SelectedItem = lv.Items.GetItemAt(lv.Items.Count - 1);
     lv.ScrollIntoView(lv.SelectedItem);
     ListViewItem item = lv.ItemContainerGenerator.ContainerFromItem(lv.SelectedItem) as ListViewItem;
     if (item != null)
     {
         item.Focus();
     }
 }
        public void LoadChapter()
        {
            Task.Run(() => {
                int index          = 0;
                Chapter actualChap = new Chapter();
                Dispatcher.Invoke(() => {
                    _notification.Visibility = true;
                    index      = _collectionView.CurrentPosition;
                    actualChap = _collectionView.CurrentItem as Chapter;
                });
                if (actualChap.Pages == null || actualChap.Pages.Count == 0)
                {
                    var source = _sourceManager.GetSourceFromLink(actualChap.Link);
                    var chap   = new Chapter();
                    source.GetInfo(actualChap.Link, out chap);
                    Dispatcher.Invoke(() => {
                        _readerViewModel.ActualChapter = chap;
                    });
                }
                else
                {
                    Dispatcher.Invoke(() => {
                        _readerViewModel.ActualChapter = actualChap;
                    });
                }

                if (_readerViewModel.Hq.Chapters.Count > 1 && _readerViewModel.Hq.Chapters.Count < _readerViewModel.ActualChapterIndex)
                {
                    var nextChap = new Chapter();
                    Dispatcher.Invoke(() => {
                        nextChap = _readerViewModel.Hq.Chapters[index + 1] as Chapter;
                    });
                    if (nextChap.Pages == null || nextChap.Pages.Count == 0)
                    {
                        var source = _sourceManager.GetSourceFromLink(nextChap.Link);
                        var chap   = new Chapter();
                        source.GetInfo(nextChap.Link, out chap);
                        Dispatcher.Invoke(() => _readerViewModel.NextChapter = chap);
                    }
                    else
                    {
                        Dispatcher.Invoke(() => _readerViewModel.NextChapter = nextChap);
                    }
                }


                Dispatcher.Invoke(() => {
                    _readerView.SelectedIndex = _readerViewModel.ActualPage;
                    _readerView.ScrollIntoView(_readerView.SelectedItem);
                    _pageTitleView.PageTitle = _readerViewModel.ActualChapter.Title;
                    _notification.Visibility = false;
                    SaveChapter();
                });
            });
        }
Пример #3
0
 static void ScrollToPositionInView(WList control, ScrollViewer sv, object item, ScrollToPosition position, bool animated)
 {
     // Scroll immediately if possible
     if (!TryScrollToPositionInView(control, sv, item, position, animated))
     {
         control.ScrollIntoView(item);
         control.Dispatcher.BeginInvoke(DispatcherPriority.Loaded, new Action(() =>
         {
             TryScrollToPositionInView(control, sv, item, position, animated);
         }));
     }
 }
        private void ListView_ItemsChanged(ListView listView, ItemsChangedEventArgs e)
        {
            DebugHelper.AssertUIThread();

            if ((listView != null) && (e != null))
            {
                switch (e.Action)
                {
                    case NotifyCollectionChangedAction.Add:
                        if (MetadataViewContent.lastFocused == this)
                        {
                            int newIndex = listView.Items.Count - 1;
                            listView.SelectedIndex = newIndex;
                            listView.ScrollIntoView(listView.Items[newIndex]);
                            this.setNextMetadatFocus = listView;
                        }
                        break;

                    default:
                        this.setNextMetadatFocus = null;
                        break;
                }
            }
        }
Пример #5
0
 void List_OnLoaded(object sender, RoutedEventArgs e)
 {
     list = (ListView) sender;
     list.ScrollIntoView(list.SelectedItem);
 }
Пример #6
0
 /// <summary>
 /// This method will be called when the ListBox should
 /// be scrolled to the given index
 /// </summary>
 /// <param name="listBox">The ListBox which should be scrolled</param>
 /// <param name="index">The index of the item to which it should be scrolled</param>
 public static void OnAutoScrollToCurrentItem(ListView listBox, int index)
 {
     if (listBox != null && listBox.Items != null && listBox.Items.Count > index && index >= 0)
         listBox.ScrollIntoView(listBox.Items[index]);
 }
Пример #7
0
 public void ScrollToLastItem(ListView lv)
 {
     lv.ScrollIntoView(lv.Items.GetItemAt(lv.Items.Count - 1));
 }
Пример #8
0
        private void ShowImage()
        {
            if ((currentIndex < 0) || (currentIndex >= elements.Count))
            {
                return;
            }

            parentListView.SelectedItem = elements[currentIndex];
            parentListView.ScrollIntoView(parentListView.SelectedItem);
            Title = elements[currentIndex].Name;

            MemoryStream ms = new MemoryStream();

            (elements[currentIndex] as FileElement).SaveTo(ms);
            image.SnapsToDevicePixels = true;
            image.UseLayoutRounding   = true;
            image.RenderTransform     = new ScaleTransform();
            Zoom = 1;
            //image.Source = img;
            //BitmapFrame bmp = null;

            bmp = null;

            try
            {
                ms.Position  = 0;
                bmp          = ImgConverter.StreamToBitmapImage(ms);
                image.Source = bmp;
                //bmp = BitmapFrame.Create(ms, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.OnLoad);
                //ImageBehavior.SetAnimatedSource(image, bmp);
                //bmp = null;
            }
            catch
            {
            }

            ms.Dispose();

            TextBlockStatus1.Text = "Image size: " + FormatingSize(elements[currentIndex].Size);
            TextBlockStatus2.Text = "Image resolution: " + bmp?.PixelWidth + " x " + bmp?.PixelHeight;
            TextBlockStatus3.Text = "DPI: X=" + (int?)bmp?.DpiX + "  Y=" + (int?)bmp?.DpiY;
            TextBlockStatus4.Text = (currentIndex + 1).ToString() + @" / " + elements.Count.ToString();


            try
            {
                if (((bmp.Width * (bmp.DpiX / 96)) > border.RenderSize.Width) || ((bmp.Height * (bmp.DpiY / 96)) > border.RenderSize.Height) || (border.Width == 0) || (bmp.DpiX == 0) || (bmp.DpiY == 0))
                {
                    image.Stretch = Stretch.Uniform;
                }
                else
                {
                    image.Stretch         = Stretch.None;
                    image.RenderTransform = new ScaleTransform(bmp.DpiX / 96, bmp.DpiY / 96, bmp.Width / 2, bmp.Height / 2);
                }
            }
            catch
            { }

            GC.Collect();
        }
 private void ListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     System.Windows.Controls.ListView lbx = sender as System.Windows.Controls.ListView;
     lbx.ScrollIntoView(lbx.SelectedItem);
 }
Пример #10
0
		private void AddTasks(Type[] taskTypes, ListView listView)
		{
			if (taskTypes == null)
				throw new ArgumentNullException("taskTypes");

			if (listView == null)
				throw new ArgumentNullException("listView");

			//if (Tasks.Any(t => t.GetType() == task.GetType()))
			//{
			//	var msg = "Multi".ValidateLicense();

			//	if (msg != null)
			//	{
			//		_logManager.Application.AddErrorLog(msg);

			//		new MessageBoxBuilder()
			//			.Text(LocalizedStrings.Str2903Params.Put(task.GetDisplayName()))
			//			.Warning()
			//			.Owner(this)
			//			.Show();

			//		return;	
			//	}
			//}

			BusyIndicator.IsBusy = true;
			BusyIndicator.BusyContent = LocalizedStrings.Str2904Params.Put(taskTypes.First().GetDisplayName());

			var tasks = new List<IHydraTask>();

			Task.Factory
				.StartNew(() =>
				{
					foreach (var type in taskTypes)
					{
						this.GuiSync(() =>
						{
							BusyIndicator.BusyContent = LocalizedStrings.Str2904Params.Put(type.GetDisplayName());
						});

						var task = type.CreateInstance<IHydraTask>();

						var settings = new HydraTaskSettings
						{
							Id = Guid.NewGuid(),
							WorkingFrom = TimeSpan.Zero,
							WorkingTo = TimeHelper.LessOneDay,
							IsDefault = true,
							TaskType = type.GetTypeName(false),
						};

						_entityRegistry.TasksSettings.Add(settings);
						_entityRegistry.TasksSettings.DelayAction.WaitFlush();

						InitTask(task, settings);

						var allSec = _entityRegistry.Securities.ReadById(Core.Extensions.AllSecurityId);

						task.Settings.Securities.Add(task.ToTaskSecurity(allSec));
						task.Settings.Securities.DelayAction.WaitFlush();

						tasks.Add(task);
					}
				})
				.ContinueWithExceptionHandling(this, res =>
				{
					BusyIndicator.IsBusy = false;

					if (!res)
						return;

					Tasks.AddRange(tasks);

					var last = tasks.LastOrDefault();

					if (last != null)
					{
						NavigationBar.SelectedIndex = last.IsCategoryOf(TaskCategories.Tool) ? 1 : 0;

						listView.SelectedItem = last;
						listView.ScrollIntoView(last);

						foreach (var task in tasks)
						{
							var pane = EnsureTaskPane(task);

							if (pane != null)
								ShowPane(pane);

							//EditTask(newTask);	
						}
					}
				});
		}
Пример #11
0
 /// <summary>
 /// This method will be called when the ListBox should
 /// be scrolled to the given index
 /// </summary>
 /// <param name="listView">The ListBox which should be scrolled</param>
 /// <param name="index">The index of the item to which it should be scrolled</param>
 public static void OnAutoScrollToCurrentItem(ListView listView)
 {
     listView.ScrollIntoView(listView.Items.CurrentItem);
 }
Пример #12
0
        private void ListView1_SelectionChanged_1(object sender, SelectionChangedEventArgs e)//列表联动事件(所有)
        {
            App app = (App)App.Current;

            System.Windows.Controls.ListView lv = sender as System.Windows.Controls.ListView;
            lv.ScrollIntoView(lv.SelectedItem);

            if (lv.Name == listViewState && listViewState == "allListView")
            {
                //"allListView"
                if (allListView.SelectedIndex < 0)
                {
                    return;
                }

                Target targetAll = app.returnBack.AllTargetList[allListView.SelectedIndex];//获取选中target的经纬度
                nowTarget = targetAll;
                app.returnBack.SetSelectedTarget(nowTarget);
                for (int i = 0; i < alarmList.Count; i++)
                {
                    if (nowTarget.ID == alarmList[i].ID)
                    {
                        alarmList[i].IsSelected = nowTarget.IsSelected;
                        break;
                    }
                }
            }
            else if (lv.Name == listViewState && listViewState == "AISListView")
            {
                if (AISListView.SelectedIndex < 0)
                {
                    return;
                }

                Target targetAis = app.returnBack.AISTargetList[AISListView.SelectedIndex];//获取选中target的经纬度
                nowTarget = targetAis;
                app.returnBack.SetSelectedTarget(nowTarget);
                for (int i = 0; i < alarmList.Count; i++)
                {
                    if (nowTarget.ID == alarmList[i].ID)
                    {
                        alarmList[i].IsSelected = nowTarget.IsSelected;
                        break;
                    }
                }
            }
            else if (lv.Name == listViewState && listViewState == "radarListView")
            {
                if (radarListView.SelectedIndex < 0)
                {
                    return;
                }
                Target targetRadar = app.returnBack.RadarTargetList[radarListView.SelectedIndex];//获取选中target的经纬度
                nowTarget = targetRadar;
                app.returnBack.SetSelectedTarget(nowTarget);
                for (int i = 0; i < alarmList.Count; i++)
                {
                    if (nowTarget.ID == alarmList[i].ID)
                    {
                        alarmList[i].IsSelected = nowTarget.IsSelected;
                        break;
                    }
                }
            }
            else if (lv.Name == listViewState && listViewState == "mixListView")
            {
                if (mixListView.SelectedIndex < 0)
                {
                    return;
                }
                Target targetMix = app.returnBack.MergeTargetList[mixListView.SelectedIndex];//获取选中target的经纬度
                nowTarget = targetMix;
                app.returnBack.SetSelectedTarget(nowTarget);
                for (int i = 0; i < alarmList.Count; i++)
                {
                    if (nowTarget.ID == alarmList[i].ID)
                    {
                        alarmList[i].IsSelected = nowTarget.IsSelected;
                        break;
                    }
                }
            }
        }
Пример #13
0
        /// <summary>
        /// 显示歌词
        /// </summary>
        public void ShowLrc(int min, int sec,TextBox txtb1,ListView lrc1)
        {
            if (count >= maxCount || maxCount <= 0) return;
            int time = min * 60 + sec;
            string show;
            if (time < lrcTime[0])
            {
                show = "歌名:" + ti + "演唱:" + ar + "专辑:" + al + "制作:" + by;
                txtb1.Text = show;
            }
            if (time == lrcTime[count])
            {

                show = lrcText[lrcIndex[count++]];

                lrc1.SelectedItem = show;
                lrc1.ScrollIntoView(lrc1.SelectedItem);
                txtb1.Text = show;

            }
            else if (time > lrcTime[count])
            {
                int i2 = lrcTime.Count();
                for (int i = count; i < i2 - 1; i++)
                {
                    if (time <= lrcTime[i])
                    {
                        count = i;
                        break;

                    }
                }
            }
            else if (count > 0 && time < lrcTime[count - 1])
            {
                for (int i = 0; i < count - 1; i++)
                {
                    if (time >= lrcTime[i])
                    {
                        count = i;
                        break;

                    }
                }
            }
        }
Пример #14
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="listView"></param>
 private void ScrollToEnd(System.Windows.Controls.ListView listView)
 {
     listView.ScrollIntoView(listView.Items[listView.Items.Count - 1]);
 }