Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SignatureToken.cs
- PathGeometry.cs
- SimpleExpression.cs
- CorrelationManager.cs
- SimpleExpression.cs
- XPathPatternBuilder.cs
- ResolvedKeyFrameEntry.cs
- HttpHeaderCollection.cs
- XamlFilter.cs
- DataServiceOperationContext.cs
- UnsafeNativeMethodsMilCoreApi.cs
- ToolStripPanel.cs
- IMembershipProvider.cs
- PropertiesTab.cs
- PlainXmlDeserializer.cs
- BasicBrowserDialog.designer.cs
- MemberExpression.cs
- NativeMethods.cs
- NextPreviousPagerField.cs
- HashSet.cs
- WhiteSpaceTrimStringConverter.cs
- ConnectionManagementSection.cs
- EncoderExceptionFallback.cs
- Int32CAMarshaler.cs
- XmlWellformedWriter.cs
- ModifierKeysValueSerializer.cs
- DataObjectEventArgs.cs
- X509ServiceCertificateAuthentication.cs
- SessionStateSection.cs
- ProgressBarAutomationPeer.cs
- TextureBrush.cs
- EffectiveValueEntry.cs
- StorageAssociationSetMapping.cs
- MappedMetaModel.cs
- SlotInfo.cs
- SqlProviderUtilities.cs
- ValueTypeIndexerReference.cs
- ColorPalette.cs
- CodeCompiler.cs
- MappingException.cs
- xdrvalidator.cs
- ClientSideQueueItem.cs
- DbReferenceCollection.cs
- QilSortKey.cs
- FormViewInsertEventArgs.cs
- VersionUtil.cs
- InvariantComparer.cs
- RowsCopiedEventArgs.cs
- SqlConnectionHelper.cs
- PartitionedStream.cs
- FontFamily.cs
- AssemblyName.cs
- SafeRightsManagementHandle.cs
- RootCodeDomSerializer.cs
- ProfileBuildProvider.cs
- ImageCodecInfo.cs
- ParameterCollectionEditor.cs
- XPathNavigatorReader.cs
- XmlFormatWriterGenerator.cs
- X500Name.cs
- HttpResponseHeader.cs
- RightsManagementResourceHelper.cs
- XmlDocumentFieldSchema.cs
- NonParentingControl.cs
- AssociatedControlConverter.cs
- CodeComment.cs
- Message.cs
- DataServiceQueryOfT.cs
- TraceProvider.cs
- Annotation.cs
- ServiceMetadataContractBehavior.cs
- DeferrableContent.cs
- RegistrationServices.cs
- AesManaged.cs
- AnimationException.cs
- ContextMenu.cs
- ServiceContractViewControl.Designer.cs
- ExpressionNormalizer.cs
- ExpressionNormalizer.cs
- StrongName.cs
- TextEditorSelection.cs
- IdentityReference.cs
- FlowSwitchDesigner.xaml.cs
- BamlTreeUpdater.cs
- RichTextBox.cs
- LogReservationCollection.cs
- CompiledXpathExpr.cs
- DataSetUtil.cs
- SqlInternalConnectionTds.cs
- MailAddressParser.cs
- WeakReferenceList.cs
- CodeTypeReference.cs
- EndpointAddressAugust2004.cs
- ColorTransform.cs
- FixedNode.cs
- SequenceDesigner.cs
- LocalIdKeyIdentifierClause.cs
- ExpressionCopier.cs
- StructuredType.cs
- MemberAssignmentAnalysis.cs