source: trunk/PKCS1/WpfControls/Components/UserControlHelper.cs @ 1650

Last change on this file since 1650 was 1650, checked in by schomburg, 11 years ago

initial commit of PKCS1 Plugin

File size: 2.5 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using System.Windows.Controls;
6using System.Windows.Documents;
7using System.Windows.Media;
8
9using PKCS1.Library;
10
11namespace PKCS1.WpfControls.Components
12{
13    static class UserControlHelper
14    {
15
16        public static ComboBoxItem GenCBoxItem(string content)
17        {
18            return GenCBoxItem(content, false);
19        }
20
21        public static ComboBoxItem GenCBoxItem(string content, bool isSelected)
22        {
23            ComboBoxItem returnItem = new ComboBoxItem();
24            returnItem.Content = content;
25            //returnItem.IsSelected = isSelected;
26            return returnItem;
27        }
28
29        private static TextRange GenTextRange(Run run, int start, int end, Color color)
30        {
31            TextPointer pointerStart = run.ContentStart.GetPositionAtOffset(start, LogicalDirection.Forward);
32            TextPointer pointerEnd = run.ContentStart.GetPositionAtOffset(end, LogicalDirection.Backward);
33            TextRange range = new TextRange(pointerStart, pointerEnd);
34            range.ApplyPropertyValue(TextElement.ForegroundProperty, new SolidColorBrush(color));
35
36            return range;
37        }
38
39        public static int GetRtbTextLength(RichTextBox richTextBox)
40        {
41            TextRange range = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd);
42            return range.Text.Trim().Length;
43        }
44
45        public static void loadRtbColoredSig(RichTextBox richTB, string decryptedSig)
46        {
47            FlowDocument flowDoc = new FlowDocument();
48            Paragraph para = new Paragraph();
49            Run run = new Run(decryptedSig);
50            para.Inlines.Add(run);
51
52            int paddingEnd = decryptedSig.IndexOf("ff0030"); // Ende des Padding
53            int identEnd = paddingEnd + 10 + Datablock.getInstance().HashFunctionIdent.DERIdent.Length;
54            int digestEnd = identEnd + 2 + (Datablock.getInstance().HashFunctionIdent.digestLength / 4);
55
56            TextRange rangePadding = UserControlHelper.GenTextRange(run, 4, paddingEnd + 2, Colors.Green);
57            TextRange rangeIdent = UserControlHelper.GenTextRange(run, paddingEnd + 8, identEnd, Colors.Blue);
58            TextRange rangeDigest = UserControlHelper.GenTextRange(run, identEnd, digestEnd, Colors.Red);
59
60            flowDoc.Blocks.Add(para);
61            richTB.Document = flowDoc;
62        }
63    }
64}
Note: See TracBrowser for help on using the repository browser.