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
- SystemColors.cs
- BitmapData.cs
- Schema.cs
- basenumberconverter.cs
- SynchronizationLockException.cs
- Int32Animation.cs
- MetadataSource.cs
- ForwardPositionQuery.cs
- WorkflowExecutor.cs
- SelectionGlyph.cs
- SqlProvider.cs
- FileSecurity.cs
- DataListCommandEventArgs.cs
- PolyBezierSegment.cs
- PropertyItemInternal.cs
- HelpKeywordAttribute.cs
- InvalidProgramException.cs
- ActivityBindForm.cs
- InvalidComObjectException.cs
- ResumeStoryboard.cs
- ExpandableObjectConverter.cs
- SelectionProcessor.cs
- EventRoute.cs
- TextServicesContext.cs
- WsdlInspector.cs
- AstNode.cs
- HtmlForm.cs
- XmlSchemaFacet.cs
- MasterPageParser.cs
- Events.cs
- LicFileLicenseProvider.cs
- CFStream.cs
- SynchronizingStream.cs
- DataGridCellEditEndingEventArgs.cs
- MatrixStack.cs
- StateMachineWorkflowInstance.cs
- _ServiceNameStore.cs
- UpdatePanelControlTrigger.cs
- EntityDataSourceContextCreatedEventArgs.cs
- SchemaInfo.cs
- HttpEncoderUtility.cs
- Timeline.cs
- SynchronizingStream.cs
- FlatButtonAppearance.cs
- PixelFormats.cs
- ReceiveActivityDesignerTheme.cs
- ReflectEventDescriptor.cs
- PortCache.cs
- PerspectiveCamera.cs
- MasterPageBuildProvider.cs
- SplitterDesigner.cs
- MenuItemCollection.cs
- MenuItem.cs
- CqlQuery.cs
- nulltextnavigator.cs
- TypePresenter.xaml.cs
- SafeNativeMethods.cs
- HuffCodec.cs
- WindowsListViewGroupSubsetLink.cs
- NodeLabelEditEvent.cs
- QueryOpeningEnumerator.cs
- DBDataPermission.cs
- ImageFormat.cs
- HttpModuleCollection.cs
- PathBox.cs
- RegisteredScript.cs
- BooleanFunctions.cs
- FormClosedEvent.cs
- XmlObjectSerializerWriteContextComplexJson.cs
- RawStylusInputCustomDataList.cs
- MSHTMLHostUtil.cs
- ObjectListFieldCollection.cs
- SafeUserTokenHandle.cs
- CheckBoxList.cs
- HexParser.cs
- Help.cs
- BamlLocalizableResource.cs
- DesignerWithHeader.cs
- BitmapEffect.cs
- MimeAnyImporter.cs
- StreamSecurityUpgradeAcceptor.cs
- WindowsTitleBar.cs
- SchemaObjectWriter.cs
- CollaborationHelperFunctions.cs
- Component.cs
- RegexCaptureCollection.cs
- ExpandedWrapper.cs
- CompensatableSequenceActivity.cs
- UrlMapping.cs
- SQLBytes.cs
- Literal.cs
- OrderedDictionary.cs
- OracleConnectionFactory.cs
- EventLogEntryCollection.cs
- FormatterServicesNoSerializableCheck.cs
- SrgsRuleRef.cs
- OdbcCommand.cs
- TreeViewDataItemAutomationPeer.cs
- CodeBlockBuilder.cs
- FamilyMap.cs