Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Controls / DataGridClipboardHelper.cs / 1305600 / DataGridClipboardHelper.cs
//---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // //--------------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Globalization; using System.IO; using System.Text; using System.Windows; namespace System.Windows.Controls { internal static class DataGridClipboardHelper { private const string DATAGRIDVIEW_htmlPrefix = "Version:1.0\r\nStartHTML:00000097\r\nEndHTML:{0}\r\nStartFragment:00000133\r\nEndFragment:{1}\r\n"; private const string DATAGRIDVIEW_htmlStartFragment = "\r\n\r\n"; private const string DATAGRIDVIEW_htmlEndFragment = "\r\n\r\n\r\n"; internal static void FormatCell(object cellValue, bool firstCell, bool lastCell, StringBuilder sb, string format) { bool csv = string.Equals(format, DataFormats.CommaSeparatedValue, StringComparison.OrdinalIgnoreCase); if (csv || string.Equals(format, DataFormats.Text, StringComparison.OrdinalIgnoreCase) || string.Equals(format, DataFormats.UnicodeText, StringComparison.OrdinalIgnoreCase)) { if (cellValue != null) { bool escapeApplied = false; int length = sb.Length; FormatPlainText(cellValue.ToString(), csv, new StringWriter(sb, CultureInfo.CurrentCulture), ref escapeApplied); if (escapeApplied) { sb.Insert(length, '"'); } } if (lastCell) { // Last cell sb.Append('\r'); sb.Append('\n'); } else { sb.Append(csv ? ',' : '\t'); } } else if (string.Equals(format, DataFormats.Html, StringComparison.OrdinalIgnoreCase)) { if (firstCell) { // First cell - append start of row sb.Append(""); } sb.Append(" "); } } } internal static void GetClipboardContentForHtml(StringBuilder content) { content.Insert(0, ""); // Start cell if (cellValue != null) { FormatPlainTextAsHtml(cellValue.ToString(), new StringWriter(sb, CultureInfo.CurrentCulture)); } else { sb.Append(" "); } sb.Append(" "); // End cell if (lastCell) { // Last cell - append end of row sb.Append("
"); break; // default: // The seemingly arbitrary 160 comes from RFC if (ch >= 160 && ch < 256) { output.Write(""); output.Write(((int)ch).ToString(NumberFormatInfo.InvariantInfo)); output.Write(';'); } else { output.Write(ch); } break; } prevCh = ch; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // //--------------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Globalization; using System.IO; using System.Text; using System.Windows; namespace System.Windows.Controls { internal static class DataGridClipboardHelper { private const string DATAGRIDVIEW_htmlPrefix = "Version:1.0\r\nStartHTML:00000097\r\nEndHTML:{0}\r\nStartFragment:00000133\r\nEndFragment:{1}\r\n"; private const string DATAGRIDVIEW_htmlStartFragment = "\r\n\r\n"; private const string DATAGRIDVIEW_htmlEndFragment = "\r\n\r\n\r\n"; internal static void FormatCell(object cellValue, bool firstCell, bool lastCell, StringBuilder sb, string format) { bool csv = string.Equals(format, DataFormats.CommaSeparatedValue, StringComparison.OrdinalIgnoreCase); if (csv || string.Equals(format, DataFormats.Text, StringComparison.OrdinalIgnoreCase) || string.Equals(format, DataFormats.UnicodeText, StringComparison.OrdinalIgnoreCase)) { if (cellValue != null) { bool escapeApplied = false; int length = sb.Length; FormatPlainText(cellValue.ToString(), csv, new StringWriter(sb, CultureInfo.CurrentCulture), ref escapeApplied); if (escapeApplied) { sb.Insert(length, '"'); } } if (lastCell) { // Last cell sb.Append('\r'); sb.Append('\n'); } else { sb.Append(csv ? ',' : '\t'); } } else if (string.Equals(format, DataFormats.Html, StringComparison.OrdinalIgnoreCase)) { if (firstCell) { // First cell - append start of row sb.Append("
"); break; // default: // The seemingly arbitrary 160 comes from RFC if (ch >= 160 && ch < 256) { output.Write(""); output.Write(((int)ch).ToString(NumberFormatInfo.InvariantInfo)); output.Write(';'); } else { output.Write(ch); } break; } prevCh = ch; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SqlStatistics.cs
- IsolatedStorageFilePermission.cs
- WebMessageEncoderFactory.cs
- Int16KeyFrameCollection.cs
- ChannelHandler.cs
- Size.cs
- XmlSchemaIdentityConstraint.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- SelectionRangeConverter.cs
- SHA384.cs
- AspProxy.cs
- SessionStateSection.cs
- IdentifierElement.cs
- HttpHandler.cs
- ReadOnlyHierarchicalDataSourceView.cs
- AtomicFile.cs
- TextTreeText.cs
- WmlLiteralTextAdapter.cs
- DefaultValueTypeConverter.cs
- TemplateNameScope.cs
- SafeNativeMemoryHandle.cs
- SafeProcessHandle.cs
- Normalization.cs
- WS2007HttpBindingElement.cs
- SafeSerializationManager.cs
- DesignerCommandAdapter.cs
- TagMapCollection.cs
- MultiByteCodec.cs
- LeafCellTreeNode.cs
- MaterialCollection.cs
- WebHttpBehavior.cs
- SecurityTokenRequirement.cs
- DocumentAutomationPeer.cs
- UIElementHelper.cs
- MtomMessageEncodingElement.cs
- HybridDictionary.cs
- SettingsPropertyValueCollection.cs
- ThreadExceptionDialog.cs
- TypeUtils.cs
- FormViewCommandEventArgs.cs
- ExtractorMetadata.cs
- LayoutEditorPart.cs
- ConnectionStringEditor.cs
- Profiler.cs
- RepeatButtonAutomationPeer.cs
- SimpleLine.cs
- EntityDataSourceDataSelectionPanel.designer.cs
- EditableTreeList.cs
- _Events.cs
- SQLString.cs
- SR.cs
- DbRetry.cs
- WindowsSolidBrush.cs
- TreeViewItemAutomationPeer.cs
- SafeWaitHandle.cs
- AddValidationError.cs
- SessionState.cs
- StickyNoteAnnotations.cs
- Internal.cs
- TextClipboardData.cs
- PublisherIdentityPermission.cs
- TextEffect.cs
- PolicyManager.cs
- ToolStripItemRenderEventArgs.cs
- AsymmetricKeyExchangeDeformatter.cs
- ResourcePropertyMemberCodeDomSerializer.cs
- CapacityStreamGeometryContext.cs
- HtmlTableRowCollection.cs
- ListSourceHelper.cs
- EmptyElement.cs
- DefaultObjectMappingItemCollection.cs
- ObjectDataSourceDisposingEventArgs.cs
- StrokeNodeOperations.cs
- DelegatedStream.cs
- SecondaryViewProvider.cs
- Utils.cs
- GrabHandleGlyph.cs
- SpinLock.cs
- HtmlGenericControl.cs
- IsolatedStorageFilePermission.cs
- SecurityKeyIdentifierClause.cs
- ReadOnlyPropertyMetadata.cs
- SamlSecurityToken.cs
- FileInfo.cs
- ErrorTableItemStyle.cs
- SolidBrush.cs
- StorageAssociationSetMapping.cs
- CoTaskMemHandle.cs
- AppDomainManager.cs
- XmlNamespaceManager.cs
- MetadataSource.cs
- CodeDomSerializer.cs
- TypeName.cs
- ColumnWidthChangedEvent.cs
- ThicknessAnimation.cs
- BindingManagerDataErrorEventArgs.cs
- ChannelSinkStacks.cs
- TextProviderWrapper.cs
- Int16.cs
- SQLInt64Storage.cs