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
- SecurityHelper.cs
- AsymmetricSignatureFormatter.cs
- ProfileParameter.cs
- VisualTreeUtils.cs
- XmlSchemaSimpleTypeUnion.cs
- ItemCheckedEvent.cs
- CqlParserHelpers.cs
- CryptoHelper.cs
- ActiveDocumentEvent.cs
- UpDownBase.cs
- CommandPlan.cs
- LiteralControl.cs
- CodeGeneratorOptions.cs
- DriveInfo.cs
- RemotingServices.cs
- QueryOptionExpression.cs
- X509WindowsSecurityToken.cs
- FileDialog_Vista_Interop.cs
- XmlSchemaSimpleTypeList.cs
- NotificationContext.cs
- TimeZoneNotFoundException.cs
- HtmlShimManager.cs
- ServiceTimeoutsElement.cs
- FontTypeConverter.cs
- PageAdapter.cs
- TableCellCollection.cs
- Size.cs
- ExpressionBuilderContext.cs
- XmlHierarchicalEnumerable.cs
- CustomTypeDescriptor.cs
- MouseButton.cs
- InstanceOwnerQueryResult.cs
- Int32.cs
- TemplateContent.cs
- UidManager.cs
- HttpDigestClientElement.cs
- RoleBoolean.cs
- FactoryMaker.cs
- ResourceContainer.cs
- PhysicalAddress.cs
- XmlTextAttribute.cs
- XmlCDATASection.cs
- FlowPanelDesigner.cs
- ContextMarshalException.cs
- BindingObserver.cs
- VoiceInfo.cs
- DataGridViewAccessibleObject.cs
- HttpSessionStateWrapper.cs
- TextParentUndoUnit.cs
- StatusBarAutomationPeer.cs
- DataSourceDescriptorCollection.cs
- OrElse.cs
- PriorityItem.cs
- MeshGeometry3D.cs
- EntityKey.cs
- UnsafeNativeMethods.cs
- FileLogRecordStream.cs
- DrawItemEvent.cs
- ArcSegment.cs
- FileAuthorizationModule.cs
- ImageEditor.cs
- ByteAnimationUsingKeyFrames.cs
- LogRestartAreaEnumerator.cs
- MenuItemBinding.cs
- UpdateCommand.cs
- InputLangChangeRequestEvent.cs
- PathData.cs
- WebOperationContext.cs
- BookmarkUndoUnit.cs
- TabControl.cs
- Point.cs
- MethodAccessException.cs
- ComboBox.cs
- DataContractSerializerOperationBehavior.cs
- Parser.cs
- XmlResolver.cs
- SafeMILHandle.cs
- ECDiffieHellmanCng.cs
- Monitor.cs
- FixedSOMElement.cs
- Membership.cs
- WebPartZoneBase.cs
- RegexWorker.cs
- XPathEmptyIterator.cs
- Camera.cs
- ElementAtQueryOperator.cs
- MetadataFile.cs
- EncoderBestFitFallback.cs
- ClientRoleProvider.cs
- InternalControlCollection.cs
- CounterSample.cs
- MappingItemCollection.cs
- VirtualPath.cs
- BeginEvent.cs
- ObjectSpanRewriter.cs
- TrailingSpaceComparer.cs
- NetCodeGroup.cs
- KeysConverter.cs
- SystemColorTracker.cs
- WriteableOnDemandPackagePart.cs