private void OnListSelectionChanged(object sender, SelectionChangedEventArgs e) { if (e.AddedItems.Count > 0) { TranscriptEntry entry = (TranscriptEntry)e.AddedItems[0]; VideoPlayer.Position = TimeSpan.FromSeconds(entry.StartSeconds); } }
private void OnItemEditing(object sender, EventArgs e) { EditableTextBlock block = (EditableTextBlock)sender; TranscriptEntry entry = block.DataContext as TranscriptEntry; if (entry != null) { TranscriptView.SelectedItem = entry; } }
public void LoadSrt(string fileName, double width) { this.fileName = fileName; string[] lines = System.IO.File.ReadAllLines(fileName); var entries = new List <TranscriptEntry>(); var pos = 0; var count = lines.Length; while (pos < count) { var index = int.Parse(lines[pos++]); if (pos >= count) { break; } var range = lines[pos++].Trim(); if (pos >= count) { break; } // consume the entire prompt up to next blank line. var prompt = lines[pos++].Trim(); while (pos < count && !string.IsNullOrEmpty(lines[pos].Trim())) { prompt += '\n' + lines[pos++].Trim(); } // skip blank lines. while (pos < count && string.IsNullOrEmpty(lines[pos].Trim())) { pos++; } var e = new TranscriptEntry(index, range, prompt) { Width = width }; e.PropertyChanged += OnEntryChanged; entries.Add(e); } this._data = entries; this.Entries.Clear(); foreach (var e in entries) { this.Entries.Add(e); } this.Dirty = false; selected = null; }
internal void Select(TranscriptEntry entry) { if (selected != entry) { if (selected != null) { selected.Selected = false; } selected = entry; if (entry != null) { entry.Selected = true; } } }