Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / Tools / System.Activities.Presentation / System / Activities / Presentation / View / BreadCrumbTextConverter.cs / 1305376 / BreadCrumbTextConverter.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.Activities.Presentation.View { using System.Windows.Data; using System.Activities.Presentation.Model; internal class BreadCrumbTextConverter : IMultiValueConverter { const int MaxDisplayNameLength = 20; double pixelsPerChar = 6.5; internal double PixelsPerChar { get { return this.pixelsPerChar; } set { this.pixelsPerChar = Math.Max(5.0, value); } } public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture) { int actualDisplayNameLength = MaxDisplayNameLength; ModelItem boundModelItem = values[0] as ModelItem; // default to root item's typename string breadCrumbText = (null != boundModelItem ? boundModelItem.ItemType.Name : ""); // if there is a display name property on root use that as the file name. if (values[1] is ModelItem) { ModelItem displayNameProperty = (ModelItem)values[1]; if (typeof(string) == displayNameProperty.ItemType) { values[1] = displayNameProperty.GetCurrentValue(); } } if (values[1] is string) { string displayName = (string)values[1]; if (!displayName.Equals(string.Empty)) { breadCrumbText = displayName; } } if (values.Length == 3 && values[2] is double) { double actualControlWidth = (double)values[2]; actualDisplayNameLength = (int)Math.Max(MaxDisplayNameLength, actualControlWidth / pixelsPerChar); } if (breadCrumbText.Length > actualDisplayNameLength) { breadCrumbText = breadCrumbText.Substring(0, actualDisplayNameLength - 3) + "..."; } return breadCrumbText; } public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture) { throw FxTrace.Exception.AsError(new InvalidOperationException()); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.Activities.Presentation.View { using System.Windows.Data; using System.Activities.Presentation.Model; internal class BreadCrumbTextConverter : IMultiValueConverter { const int MaxDisplayNameLength = 20; double pixelsPerChar = 6.5; internal double PixelsPerChar { get { return this.pixelsPerChar; } set { this.pixelsPerChar = Math.Max(5.0, value); } } public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture) { int actualDisplayNameLength = MaxDisplayNameLength; ModelItem boundModelItem = values[0] as ModelItem; // default to root item's typename string breadCrumbText = (null != boundModelItem ? boundModelItem.ItemType.Name : " "); // if there is a display name property on root use that as the file name. if (values[1] is ModelItem) { ModelItem displayNameProperty = (ModelItem)values[1]; if (typeof(string) == displayNameProperty.ItemType) { values[1] = displayNameProperty.GetCurrentValue(); } } if (values[1] is string) { string displayName = (string)values[1]; if (!displayName.Equals(string.Empty)) { breadCrumbText = displayName; } } if (values.Length == 3 && values[2] is double) { double actualControlWidth = (double)values[2]; actualDisplayNameLength = (int)Math.Max(MaxDisplayNameLength, actualControlWidth / pixelsPerChar); } if (breadCrumbText.Length > actualDisplayNameLength) { breadCrumbText = breadCrumbText.Substring(0, actualDisplayNameLength - 3) + "..."; } return breadCrumbText; } public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture) { throw FxTrace.Exception.AsError(new InvalidOperationException()); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TransformBlockRequest.cs
- FixedTextPointer.cs
- KeyedCollection.cs
- Sql8ExpressionRewriter.cs
- ZipIOLocalFileHeader.cs
- ContentType.cs
- TextContainerChangedEventArgs.cs
- CompilerParameters.cs
- FlowLayoutSettings.cs
- ViewStateModeByIdAttribute.cs
- TargetConverter.cs
- IndentedTextWriter.cs
- TextPointerBase.cs
- XPathMultyIterator.cs
- TextRunProperties.cs
- mediaeventargs.cs
- TextEmbeddedObject.cs
- WMIGenerator.cs
- PreviewKeyDownEventArgs.cs
- CodeIterationStatement.cs
- DNS.cs
- _SafeNetHandles.cs
- OracleDateTime.cs
- EndOfStreamException.cs
- ObjectCloneHelper.cs
- EntityContainerEntitySet.cs
- CornerRadius.cs
- unsafenativemethodsother.cs
- MasterPageBuildProvider.cs
- Byte.cs
- EnumMember.cs
- WindowsFormsHostPropertyMap.cs
- SafePEFileHandle.cs
- XPathNodeHelper.cs
- IriParsingElement.cs
- EntityClientCacheEntry.cs
- AppDomainShutdownMonitor.cs
- XmlUnspecifiedAttribute.cs
- StatusBar.cs
- TextBoxRenderer.cs
- BooleanExpr.cs
- InterleavedZipPartStream.cs
- CollectionChangeEventArgs.cs
- METAHEADER.cs
- KerberosTicketHashIdentifierClause.cs
- CategoryAttribute.cs
- WebRequest.cs
- ToolStripDropDownClosedEventArgs.cs
- DPCustomTypeDescriptor.cs
- EntityDataSourceContainerNameItem.cs
- CompoundFileStreamReference.cs
- QilIterator.cs
- OdbcEnvironmentHandle.cs
- TextDecorationCollectionConverter.cs
- DataGridViewComboBoxColumnDesigner.cs
- UdpReplyToBehavior.cs
- SqlClientPermission.cs
- Types.cs
- validation.cs
- CodeDefaultValueExpression.cs
- MasterPage.cs
- DataList.cs
- ServicePointManager.cs
- ToolboxDataAttribute.cs
- DecimalStorage.cs
- ObjectReferenceStack.cs
- MetabaseServerConfig.cs
- StringCollection.cs
- ObjectManager.cs
- TableLayoutRowStyleCollection.cs
- COM2Properties.cs
- HtmlShim.cs
- RC2.cs
- StrongTypingException.cs
- AmbientProperties.cs
- ObjectDataSourceMethodEventArgs.cs
- ControlEvent.cs
- SystemIcons.cs
- SharedDp.cs
- BuilderPropertyEntry.cs
- XmlParser.cs
- HotSpotCollection.cs
- WeakReadOnlyCollection.cs
- MetadataItem.cs
- SamlSubjectStatement.cs
- HtmlContainerControl.cs
- FontFaceLayoutInfo.cs
- ServiceOperationUIEditor.cs
- TableLayoutRowStyleCollection.cs
- ListControl.cs
- StatusBarPanelClickEvent.cs
- NameValuePermission.cs
- DatasetMethodGenerator.cs
- SettingsProperty.cs
- XmlIterators.cs
- ADMembershipProvider.cs
- SafeSystemMetrics.cs
- CompiledWorkflowDefinitionContext.cs
- BufferModeSettings.cs
- WebEventTraceProvider.cs