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
- EventTrigger.cs
- OciEnlistContext.cs
- SharedConnectionListener.cs
- EntityCollectionChangedParams.cs
- EnumerableWrapperWeakToStrong.cs
- ClientApiGenerator.cs
- DocumentOrderComparer.cs
- BaseCodeDomTreeGenerator.cs
- FirstMatchCodeGroup.cs
- MethodCallConverter.cs
- HostedElements.cs
- TemplateManager.cs
- FontWeights.cs
- RightNameExpirationInfoPair.cs
- BufferedConnection.cs
- SemanticTag.cs
- RepeaterCommandEventArgs.cs
- XmlDeclaration.cs
- SynchronizedInputPattern.cs
- X509PeerCertificateAuthenticationElement.cs
- RijndaelManaged.cs
- MatrixAnimationBase.cs
- Nodes.cs
- ReaderContextStackData.cs
- WhereaboutsReader.cs
- WindowsListView.cs
- MULTI_QI.cs
- JavaScriptObjectDeserializer.cs
- SoapIgnoreAttribute.cs
- RectKeyFrameCollection.cs
- ValidateNames.cs
- FreezableCollection.cs
- DataIdProcessor.cs
- RepeatBehaviorConverter.cs
- AnnotationHelper.cs
- TextElementEnumerator.cs
- ImportContext.cs
- TableLayoutSettingsTypeConverter.cs
- ToolTipService.cs
- CompositeFontFamily.cs
- XmlAtomErrorReader.cs
- StringValidatorAttribute.cs
- CqlGenerator.cs
- ElementMarkupObject.cs
- CompiledRegexRunnerFactory.cs
- WmfPlaceableFileHeader.cs
- DocumentOrderComparer.cs
- DataGridTablesFactory.cs
- CompilerState.cs
- DataServiceHostFactory.cs
- Serializer.cs
- SqlStatistics.cs
- LeafCellTreeNode.cs
- XsdBuilder.cs
- WindowsNonControl.cs
- __Error.cs
- AlignmentYValidation.cs
- NotifyCollectionChangedEventArgs.cs
- SessionSwitchEventArgs.cs
- LeftCellWrapper.cs
- PerformanceCounterScope.cs
- InputLanguage.cs
- TdsRecordBufferSetter.cs
- RequestCachingSection.cs
- DataGridViewHeaderCell.cs
- FlowDocumentPaginator.cs
- ParallelTimeline.cs
- BitmapCache.cs
- DataGridPageChangedEventArgs.cs
- BoundField.cs
- FilteredXmlReader.cs
- ValidationResults.cs
- FormClosedEvent.cs
- ResXResourceSet.cs
- Menu.cs
- FileSystemEnumerable.cs
- storepermission.cs
- ParallelTimeline.cs
- AuthenticationManager.cs
- BypassElement.cs
- PropertyEmitterBase.cs
- SQLGuidStorage.cs
- CodeSubDirectoriesCollection.cs
- ToolboxCategoryItems.cs
- ObjectListItem.cs
- DrawingBrush.cs
- BindingContext.cs
- MemoryPressure.cs
- RightsManagementInformation.cs
- MobileDeviceCapabilitiesSectionHandler.cs
- ObjectDataSourceSelectingEventArgs.cs
- PopupRootAutomationPeer.cs
- TypeBuilderInstantiation.cs
- PageBreakRecord.cs
- Helpers.cs
- ExpressionCopier.cs
- PeerNameResolver.cs
- RoutingBehavior.cs
- ConstraintConverter.cs
- ValidationHelpers.cs