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
- ListBoxItemWrapperAutomationPeer.cs
- MdiWindowListItemConverter.cs
- ObjectFullSpanRewriter.cs
- Scheduler.cs
- CompilerParameters.cs
- X509Utils.cs
- ParseElement.cs
- PartialCachingControl.cs
- COSERVERINFO.cs
- CultureTableRecord.cs
- SchemaMerger.cs
- RowTypePropertyElement.cs
- Symbol.cs
- PerformanceCounterScope.cs
- VersionedStreamOwner.cs
- FormatConvertedBitmap.cs
- SignedXmlDebugLog.cs
- NamedPipeConnectionPoolSettingsElement.cs
- TypeUsageBuilder.cs
- EdmProperty.cs
- Point.cs
- InternalConfigConfigurationFactory.cs
- ChineseLunisolarCalendar.cs
- glyphs.cs
- BinHexDecoder.cs
- XmlTextReaderImpl.cs
- SerializerWriterEventHandlers.cs
- LocatorGroup.cs
- NonDualMessageSecurityOverHttpElement.cs
- APCustomTypeDescriptor.cs
- PointAnimationUsingPath.cs
- MemoryRecordBuffer.cs
- Visitors.cs
- ViewPort3D.cs
- BitmapDownload.cs
- Panel.cs
- BitmapEffectDrawing.cs
- DetailsViewDeletedEventArgs.cs
- EventSourceCreationData.cs
- CqlQuery.cs
- Decimal.cs
- XmlDeclaration.cs
- AssemblyBuilder.cs
- MasterPageParser.cs
- ToolStripContentPanel.cs
- SharedDp.cs
- TypePropertyEditor.cs
- MemoryStream.cs
- RoutedPropertyChangedEventArgs.cs
- RtfControls.cs
- ToolStripRendererSwitcher.cs
- FontUnitConverter.cs
- TemplatedAdorner.cs
- NumericUpDownAcceleration.cs
- ConstraintCollection.cs
- sqlmetadatafactory.cs
- ColumnWidthChangingEvent.cs
- BitmapEffectInputData.cs
- EntityDataSourceQueryBuilder.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- HttpRequestWrapper.cs
- UMPAttributes.cs
- ChannelServices.cs
- LOSFormatter.cs
- SoapReflectionImporter.cs
- CustomAttributeFormatException.cs
- DateTimeOffsetStorage.cs
- EndpointPerformanceCounters.cs
- Transform3D.cs
- DataGridViewControlCollection.cs
- TreeViewItemAutomationPeer.cs
- DocumentOutline.cs
- SoapDocumentServiceAttribute.cs
- ValidationRuleCollection.cs
- ReferenceEqualityComparer.cs
- IODescriptionAttribute.cs
- NativeRecognizer.cs
- DelegatingMessage.cs
- ScriptResourceHandler.cs
- FactoryGenerator.cs
- StorageMappingItemLoader.cs
- UserMapPath.cs
- ActivityDesignerLayoutSerializers.cs
- UIElement.cs
- Int16AnimationUsingKeyFrames.cs
- EventLogHandle.cs
- ExtendedPropertyDescriptor.cs
- WebScriptEnablingElement.cs
- SwitchAttribute.cs
- CodeCompiler.cs
- DataGrid.cs
- TextReturnReader.cs
- GroupQuery.cs
- TdsValueSetter.cs
- SystemColors.cs
- StringExpressionSet.cs
- NativeMethods.cs
- HtmlTitle.cs
- SqlBinder.cs
- ScaleTransform3D.cs