本文整理汇总了C#中System.Windows.Documents.TextRange.IndexOf方法的典型用法代码示例。如果您正苦于以下问题:C# TextRange.IndexOf方法的具体用法?C# TextRange.IndexOf怎么用?C# TextRange.IndexOf使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Windows.Documents.TextRange
的用法示例。
在下文中一共展示了TextRange.IndexOf方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: richTextBox1_PreviewKeyDown
private void richTextBox1_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (lstOptions.Visibility == Visibility.Visible)
{
lstOptions.Focus();
return;
}
if (!IsCaretPositionValid())
{
this.richTextBox1.CaretPosition = this.richTextBox1.CaretPosition.DocumentEnd;
return;
}
if (e.Key == Key.Space)
{
var command = new TextRange(richTextBox1.CaretPosition.GetLineStartPosition(0),
richTextBox1.CaretPosition).Text;
command = command.Substring(command.IndexOf(">") + 1).Trim();
ShowOptions(command);
return;
}
if (e.Key == Key.Enter)
{
var command = GetCommand();
RunCommand(command);
e.Handled = true;
}
else if (e.Key == Key.Up)
{
GetCommand(--commandIdx);
e.Handled = true;
}
else if (e.Key == Key.Down)
{
GetCommand(++commandIdx);
e.Handled = true;
}
else if (e.Key == Key.Escape)
{
ChangePrompt("", BRUSH_PROMPT);
lstOptions.Visibility = Visibility.Collapsed;
}
else if (e.Key == Key.Back)
{
var text = new TextRange(richTextBox1.CaretPosition.GetLineStartPosition(0),
richTextBox1.CaretPosition).Text;
if (text.EndsWith(">")) e.Handled = true;
}
}
示例2: richTextBox1_PreviewKeyDown
private void richTextBox1_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (lstOptions.Visibility == Visibility.Visible)
{
if (e.Key == Key.Escape)
{
this.HideOptions();
}
else
{
lstOptions.Focus();
}
return;
}
if (!IsCaretPositionValid())
{
this.richTextBox1.CaretPosition = this.richTextBox1.CaretPosition.DocumentEnd;
return;
}
if (e.Key == Key.Space)
{
var command = new TextRange(richTextBox1.CaretPosition.GetLineStartPosition(0),
richTextBox1.CaretPosition).Text;
command = command.Substring(command.IndexOf(">") + 1).Trim();
ShowOptions(command);
return;
}
if (e.Key == Key.Enter)
{
var command = GetCommand();
if (this.IsProcessRunning)
{
this.WriteInput(command);
}
else
{
RunCommand(command);
e.Handled = true;
}
}
else if (e.Key == Key.Up)
{
GetCommand(--commandIdx);
e.Handled = true;
}
else if (e.Key == Key.Down)
{
GetCommand(++commandIdx);
e.Handled = true;
}
else if (e.Key == Key.Escape)
{
ChangePrompt("", BRUSH_PROMPT);
this.HideOptions();
}
else if (e.Key == Key.Back)
{
var text = new TextRange(richTextBox1.CaretPosition.GetLineStartPosition(0),
richTextBox1.CaretPosition).Text;
if (text.EndsWith(">") && text.IndexOf(">") == text.Length - 1) e.Handled = true;
}
else if (e.Key == Key.C && Keyboard.Modifiers == ModifierKeys.Control)
{
if (IsProcessRunning)
{
SendShutdownToConsole();
e.Handled = true;
}
}
else if (lstOptions.Visibility == Visibility.Visible)
{
//lstOptions.KeyDown()
}
}
示例3: adornedElement_PreviewKeyUp
private void adornedElement_PreviewKeyUp(object sender, KeyEventArgs e)
{
if ((this.richTextBox != null) && (((e != null) && (e.Key == Key.Space)) || ((e == null) && this.performURLParsing)))
{
bool isWWWPrefixed;
this.performURLParsing = false;
string text = new TextRange(this.richTextBox.Document.ContentStart, this.richTextBox.Document.ContentEnd).Text;
string str2 = new TextRange(this.richTextBox.Document.ContentStart, this.richTextBox.CaretPosition).Text;
int length = str2.Length;
if (((length - 1) <= text.Length) && (length != 0))
{
int startIndex = -1;
if ((length - 2) >= 0)
{
startIndex = text.LastIndexOf("http://", (int)(length - 2));
startIndex = (startIndex == -1) ? text.LastIndexOf("https://", (int)(length - 2)) : startIndex;
startIndex = (startIndex == -1) ? (startIndex = text.LastIndexOf("www.", (int)(length - 2))) : startIndex;
}
if (startIndex == -1)
{
startIndex = 0;
}
if (str2.Substring(0, str2.Length - 1).EndsWith("\r\n"))
{
startIndex = length - 1;
}
this.lastWord = text.Substring(startIndex, length - startIndex);
isWWWPrefixed = false;
int num3 = this.lastWord.LastIndexOf("http://");
num3 = (num3 == -1) ? this.lastWord.LastIndexOf("https://") : num3;
if (num3 == -1)
{
num3 = this.lastWord.LastIndexOf("www.");
isWWWPrefixed = true;
}
if (num3 != -1)
{
string url;
ContextMenu buttonContextMenu;
Button button;
MenuItem expandContractMenuItem;
MenuItem gotoLinkMenuitem;
Func<string> shortenURLDelegate;
int index = this.lastWord.IndexOf(' ', num3);
if (index != -1)
{
url = this.lastWord.Substring(num3, index - num3);
int num5 = url.Length;
if (isWWWPrefixed)
{
num5 += "http://".Length;
}
if ((num5 >= this.URL_LENGTH_THRESHOLD) && !this.IsAlreadyShortened(url))
{
int x = text.IndexOf(url) - GetInlineUIContainerCountUpToPointer(this.richTextBox, this.richTextBox.CaretPosition);
TextPointer start = new TextRange(GetPoint(this.richTextBox.Document.ContentStart, x), this.richTextBox.Document.ContentEnd).Start;
start.DeleteTextInRun(url.Length);
buttonContextMenu = new ContextMenu();
button = new Button();
button.SetResourceReference(FrameworkElement.StyleProperty, "URLButton");
button.Content = "shortening...";
button.Click += delegate(object s, RoutedEventArgs e2)
{
buttonContextMenu.PlacementTarget = button;
buttonContextMenu.Placement = PlacementMode.Bottom;
buttonContextMenu.IsOpen = true;
};
expandContractMenuItem = new MenuItem
{
Header = "Expand link",
IsEnabled = false
};
gotoLinkMenuitem = new MenuItem
{
Header = "Open link in browser",
IsEnabled = false
};
buttonContextMenu.Items.Add(gotoLinkMenuitem);
buttonContextMenu.Items.Add(expandContractMenuItem);
InlineUIContainer container = new InlineUIContainer(button, start);
shortenURLDelegate = delegate
{
Dictionary<string, string> dictionary = new Dictionary<string, string>();
if (CoreServices.Instance.CurrentURLShorteningService(this.TwitterAccountID) != null)
{
string key = CoreServices.Instance.CurrentURLShorteningService(this.TwitterAccountID).Name;
if (!App.ShortenedURLCache.ContainsKey(key))
{
Dictionary<string, string> dictionary2 = new Dictionary<string, string>();
App.ShortenedURLCache.Add(key, dictionary2);
dictionary = dictionary2;
}
else
{
dictionary = App.ShortenedURLCache[key];
}
}
string text1 = url;
if (isWWWPrefixed)
{
//.........这里部分代码省略.........
示例4: RenderInputGraphics_Click
private void RenderInputGraphics_Click(object sender, RoutedEventArgs e)
{
string myText = new TextRange(GraphicsInput.Document.ContentStart, GraphicsInput.Document.ContentEnd).Text;
if (!string.IsNullOrEmpty(myText) && (myText.IndexOf("linkto") == -1))
{
if (visType == VisualisationType.XAML)
showXAML(myText);
else if (visType == VisualisationType.SVG)
showSVG(myText);
}
else if (myText.IndexOf("linkto") != -1)
{
ReportStatusBar.ShowStatus("Modified graphics have to be processed first, then use \"Render output graphics\" to render", ReportIcon.Error);
logger.log("Render input graphics error -> " + "Modified graphics have to be processed first", ReportIcon.Error);
}
else
{
ReportStatusBar.ShowStatus("Input graphics is empty!", ReportIcon.Error);
logger.log("Render input graphics error -> " + "Input is empty!", ReportIcon.Error);
}
}
示例5: BuildNotation_Click
private void BuildNotation_Click(object sender, RoutedEventArgs e)
{
ReportStatusBar.clearReportMessage();
if (String.IsNullOrEmpty(NotationNameTextBox.Text))
{
ReportStatusBar.ShowStatus("Notation name is not provided!", ReportIcon.Error);
logger.log("Building \'" + NotationNameTextBox.Text + "\' failed -> " + "Notation name is not provided!", ReportIcon.Error);
NotationNameTextBox.Focus();
}
else
{
string graphicsText = new TextRange(GraphicsInput.Document.ContentStart, GraphicsInput.Document.ContentEnd).Text;
if (String.IsNullOrEmpty(graphicsText))
{
ReportStatusBar.ShowStatus("Notation graphics code is missing!", ReportIcon.Error);
logger.log("Building \'" + NotationNameTextBox.Text + "\' failed -> " + "Notation graphics code is missing!", ReportIcon.Error);
GraphicsInput.Focus();
}
else
{
if ((graphicsText.IndexOf("linkto") == -1) && (graphicsText.IndexOf("callfor") == -1))
{
MessageBoxResult mbresult;
mbresult = MessageBox.Show("No semantic link between data and graphics is provided, if you continue the notation will be static!", "Warning", MessageBoxButton.OKCancel, MessageBoxImage.Warning);
if (mbresult == MessageBoxResult.Cancel)
{
ReportStatusBar.ShowStatus("Build canceled!", ReportIcon.Warning);
logger.log("Building \'" + NotationNameTextBox.Text + "\' canceled!", ReportIcon.Error);
return;
}
}
string dataText = generate_Data(graphicsText, NotationNameTextBox.Text);
TextRange temp = new TextRange(XMLDataInput.Document.ContentStart, XMLDataInput.Document.ContentEnd);
temp.Text = "";
XMLDataInput.AppendText(prettyPrinter.PrintToString(dataText));
if (String.IsNullOrEmpty(dataText))
{
ReportStatusBar.ShowStatus("Data XML is missing!", ReportIcon.Error);
logger.log("Building \'" + NotationNameTextBox.Text + "\' failed -> " + "Data XML is missing!", ReportIcon.Error);
XMLDataInput.Focus();
}
else
{
//do build
string check = buildNotation(graphicsText, dataText);
if (!String.IsNullOrEmpty(check))
{
TextRange range = new TextRange(GraphicsOutput.Document.ContentStart, GraphicsOutput.Document.ContentEnd);
range.Text = "";
range.Text = check;
ReportStatusBar.ShowStatus("Noation built!", ReportIcon.OK);
logger.log("Notation \'" + NotationNameTextBox.Text + "\' is built.", ReportIcon.OK);
SkinOutputTabControl.SelectedIndex = 4;
}
}
}
}
}
示例6: richTextBox1_PreviewKeyDown
private void richTextBox1_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Space)
{
var command = new TextRange(richTextBox1.CaretPosition.GetLineStartPosition(0),
richTextBox1.CaretPosition).Text;
command = command.Substring(command.IndexOf(">") + 1).Trim();
ShowOptions(command);
return;
}
else if (e.Key == Key.Tab || e.Key == Key.Down)
{
if (lstOptions.Visibility == Visibility.Visible)
{
lstOptions.Focus();
return;
}
}
else
{
lstOptions.Visibility = Visibility.Collapsed;
}
if (e.Key == Key.Enter)
{
var command = new TextRange(richTextBox1.CaretPosition.GetLineStartPosition(0),
richTextBox1.CaretPosition.GetLineStartPosition(1) ?? richTextBox1.CaretPosition.DocumentEnd).Text;
command = command.Replace("\r", "").Replace("\n", "");
RunCommand(command);
e.Handled = true;
}
else if (e.Key == Key.Up)
{
GetCommand(--commandIdx);
e.Handled = true;
}
else if (e.Key == Key.Down)
{
GetCommand(++commandIdx);
e.Handled = true;
}
else if (e.Key == Key.Escape)
{
ChangePrompt("", new SolidColorBrush(Colors.Black));
}
else if (e.Key == Key.Back)
{
var text = new TextRange(richTextBox1.CaretPosition.GetLineStartPosition(0),
richTextBox1.CaretPosition).Text;
if (text.EndsWith(">")) e.Handled = true;
}
else
{
var text = new TextRange(richTextBox1.CaretPosition, richTextBox1.CaretPosition.DocumentEnd).Text;
if (text.Contains(">")) //e.Handled = true;
this.richTextBox1.CaretPosition = this.richTextBox1.CaretPosition.DocumentEnd;
}
}
示例7: rtbEdit_PreviewKeyDown
private void rtbEdit_PreviewKeyDown(object sender, KeyEventArgs e)
{
timer.Interval = COUNTDOWN;
if (e.Key == Key.V && (Keyboard.Modifiers & (ModifierKeys.Control)) == (ModifierKeys.Control))
{
if (Clipboard.ContainsImage())
{
e.Handled = true;
BitmapSource bitmap = Clipboard.GetImage();
PngBitmapEncoder pE = new PngBitmapEncoder();
string tempFile = Path.GetTempFileName();
pE.Frames.Add(BitmapFrame.Create(bitmap));
using (Stream stream = File.Create(tempFile))
{
pE.Save(stream);
}
Helper.ImageHelper.InsertImg(rtbEdit, tempFile);
File.Delete(tempFile);
}
}
else
{
string strText = new TextRange(rtbEdit.Document.ContentStart, rtbEdit.Document.ContentEnd).Text;
if (strText.LastIndexOf("\r\n") > 0)
{
strText = strText.Remove(strText.LastIndexOf("\r\n"));
}
if (strText.Length <= 0) return;
int titleEnd = strText.IndexOf("\r\n");
if (titleEnd > 31 || titleEnd < 0) titleEnd = 0;
strText = strText.Remove(0, titleEnd);
int count = Regex.Matches(strText, @"[^\s]").Count;
if (count <= 0) return;
tbCount.Text = count + "";
if (count > countAll + 10 || count < countAll - 10)
{
countAll = count;
SaveAndUpdate();
}
}
}