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
- TableStyle.cs
- CompressedStack.cs
- ListenerAdaptersInstallComponent.cs
- RequestNavigateEventArgs.cs
- ProfileSection.cs
- AppDomain.cs
- SafeSecurityHelper.cs
- XmlWhitespace.cs
- GridViewRowPresenterBase.cs
- NameValueSectionHandler.cs
- WindowsListViewItemCheckBox.cs
- OdbcParameterCollection.cs
- LocalizedNameDescriptionPair.cs
- HtmlHead.cs
- DragDeltaEventArgs.cs
- InstanceCollisionException.cs
- OciHandle.cs
- DataGridCellEditEndingEventArgs.cs
- InvalidCardException.cs
- TextChange.cs
- ArgumentNullException.cs
- FontFamilyConverter.cs
- WindowsRichEditRange.cs
- XhtmlTextWriter.cs
- XamlSerializerUtil.cs
- Avt.cs
- XmlException.cs
- ElapsedEventArgs.cs
- RtfToXamlLexer.cs
- GcHandle.cs
- BufferAllocator.cs
- QilGeneratorEnv.cs
- ListItemCollection.cs
- TextTreeRootTextBlock.cs
- HitTestWithPointDrawingContextWalker.cs
- ToolStripItemImageRenderEventArgs.cs
- AlternateView.cs
- DesignerHierarchicalDataSourceView.cs
- SafeFindHandle.cs
- WorkflowViewManager.cs
- smtppermission.cs
- DataBoundControlHelper.cs
- WorkflowInstanceSuspendedRecord.cs
- FixedTextBuilder.cs
- DataGridViewRowPrePaintEventArgs.cs
- WebPartMovingEventArgs.cs
- ObjectQueryState.cs
- Configuration.cs
- UriTemplateLiteralPathSegment.cs
- PersonalizablePropertyEntry.cs
- base64Transforms.cs
- TextEncodedRawTextWriter.cs
- SettingsContext.cs
- SecurityUtils.cs
- TreeViewImageIndexConverter.cs
- BinaryMethodMessage.cs
- PriorityQueue.cs
- Header.cs
- DnsEndpointIdentity.cs
- ConfigsHelper.cs
- InvalidPrinterException.cs
- FaultPropagationRecord.cs
- SessionPageStateSection.cs
- QilSortKey.cs
- TextControlDesigner.cs
- ComponentChangedEvent.cs
- BufferBuilder.cs
- TypeDescriptorContext.cs
- SimpleExpression.cs
- ACL.cs
- IntSecurity.cs
- SelectionPattern.cs
- followingsibling.cs
- DataGridViewAdvancedBorderStyle.cs
- ToolStripItemTextRenderEventArgs.cs
- NgenServicingAttributes.cs
- IgnoreDeviceFilterElementCollection.cs
- BaseHashHelper.cs
- ObjectStateFormatter.cs
- DeleteMemberBinder.cs
- ElementNotEnabledException.cs
- Utils.cs
- _NestedMultipleAsyncResult.cs
- PageCodeDomTreeGenerator.cs
- SharedPersonalizationStateInfo.cs
- FixedSchema.cs
- MainMenu.cs
- TagNameToTypeMapper.cs
- DefaultSerializationProviderAttribute.cs
- MemoryRecordBuffer.cs
- FieldNameLookup.cs
- SoapSchemaMember.cs
- MissingFieldException.cs
- EncodingStreamWrapper.cs
- CollectionTypeElement.cs
- Registry.cs
- securitycriticaldata.cs
- ActivityDesignerResources.cs
- PageAction.cs
- ByteStorage.cs